Voir l’article sur Wikipedia. Implémentation inspirée de cette page de Wikibooks.
Voir aussi la version optimisée ou la version où l’on voit quels éléments sont échangés.