Le problème du drapeau hollandais

Votre travail est de trier les couleurs du drapeau hollandais. La seule primitive à votre disposition permet d'échanger deux lignes données. De plus, vous ne devez pas créer de nouvelles variables (à l'exception de quelques indices).

À la réflexion, on peut le faire en temps linéaire, en triant un élément à chaque étape de la boucle. Vous devriez peut-être réviser comment se passe le tri par insertion, car le tri du drapeau hollandais est une variation sur le thème. La principale différence est que vous n'avez pas un seul point d'insertion, mais 3...

Traversez vos données, en maintenant trois indices : Remarques que les cellules non triées sont toujours entre apresBleu et avantBlanc.
À chaque étape de votre traversée, regardez la couleur de la case pointée par apresBleu et effectuez les échanges qui s'imposent. La boucle s'arrête quand apresBleu devient plus grand que avantBlanc.