# 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 :

- `apresBleu` est initialisé à 0. Assurez vous de n'avoir que des cellules bleues entre 0 et `apresBleu` à tout moment.
- `blancRouge` est initialisé à taille-1. Assurez vous de n'avoir que des cellules rouges après `blancRouge`.
- `avantBlanc` est initialisé à taille-1. Assurez vous de n'avoir que des cellules blanches entre `avantBlanc` et `blancRouge`.

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`.