logo ferr
Permutations de n éléments

Version 1.0

Algorithme de Steinhaus - Johnson - Trotter

ÉTAPE 1

Trier les éléments par ordre croissant

ÉTAPE 2

Initialiser la direction de chaque élément de la droite vers la gauche

ÉTAPE 3

Tant qu’il existe un élément mobile (un élément est mobile s’il est supérieur à l’élément immédiat qu’il regarde) :

  1. Trouver le plus grand élément mobile
  2. Le permuter avec l’élément immédiat vers lequel pointe sa direction
  3. Changer la direction de tous les éléments dont la valeur est supérieure à celle du plus grand élément mobile qui vient de permuter
Fin tant que

Exemple avec 3 entiers : 3, 2 et 1

ÉTAPE 1

Les éléments sont triés par ordre croissant : 1, 2 et 3

ÉTAPE 2

La direction de chaque élément est initialisée de la droite vers la gauche (la flèche au-dessus de l’élément indique la direction) : 1 2 3

ÉTAPE 3

Boucle Tant que Nombre de permutations Position des éléments Direction des éléments Commentaires
Position initiale 123 1 2 3
Test condition 2 et 3 sont mobiles
Itération 1 3 est l'élément mobile le plus grand. Il permute avec 2
Permutation 1 132 1 3 2
Aucun élément supérieur au plus grand élément mobile 3 donc pas de modification de direction
Test condition 3 est mobile
Itération 2 3 est l'élément mobile le plus grand. Il permute avec 1
Permutation 2 312 3 1 2
Aucun élément supérieur au plus grand élément mobile 3 donc pas de modification de direction
Test condition 2 est mobile
Itération 3 2 est l'élément mobile le plus grand. Il permute avec 1
Permutation 3 321 3 2 1
3 est supérieur à 2 qui est l’élément mobile le plus grand donc 3 change de direction
3 2 1
Test condition 3 est mobile
Itération 4 3 est l'élément mobile le plus grand. Il permute avec 2
Permutation 4 231 2 3 1
Aucun élément supérieur au plus grand élément mobile 3 donc pas de modification de direction
Test condition 3 est mobile
Itération 5 3 est l'élément mobile le plus grand. Il permute avec 1
Permutation 5 213 2 1 3
Aucun élément supérieur au plus grand élément mobile 3 donc pas de modification de direction
Test condition Aucun élément n'est mobile
Sortie de la boucle

Téléchargement du document en PDF