Algorithmes de tri Différents algorithme de tri 1. Tri sélection

publicité
Algorithmes de tri
Différents algorithme de tri
1. Tri sélection (ou tri par extraction)
Principe : on parcourt le tableau pour trouver le plus grand élément, et une fois arrivé au bout
du tableau, on place cet élément par permutation. Puis on recommence sur le reste du tableau.
Considérons un joueur de cartes qui tient dans sa main les cartes en désordre de sa donne. On
suppose qu’on a défini sur les cartes une relation d’ordre total ( Carreau, Cœur, Pique, Trèfle)
puis par valeur pour des cartes de la même famille). Pour classer ses cartes dans l’ordre
croissant de la partie gauche à la droite de sa main, le joueur peut appliquer l’algorithme de tri
par sélection :
• Il divise mentalement sa main entre partie gauche triée (vide au début) et partie droite non
triée.
• il sélectionne la plus petite carte de la partie non triée et la place à la suite des cartes de la
partie triée (donc en première position pour la première sélection).
• il recommence cette opération tant qu’il lui reste plus de deux cartes dans la partie non triée
Exercice
Appliquer l’algorithme de tri par sélection à la mains pour trier les listes d’entiers :
1. [72, 29, 39, 59, 17, 54, 77, 79, 21, 6]
2. [22, 62, 63, 70, 98, 97, 9, 53, 2, 0]
2. Tri insertion
Principe : on prend deux éléments qu'on trie dans le bon ordre, puis un 3e qu'on insère à sa
place parmi les 2 autres, puis un 4e qu'on insère à sa place parmi les 3 autres, etc.
C'est la méthode la plus utilisée pour trier des dossiers, des cartes à jouer, ...
3. Tri à bulle (bubble sort)
Principe : comparer deux à deux les éléments e1 et e2 consécutifs d'un tableau et d'effecteur
une permutation si e1 > e2. On continue de trier jusqu'à ce qu'il n'y ait plus de permutation.
Ainsi, par permutations successives le plus grand élément « remonte », comme une bulle de
champagne, à la fin du tableau ; ce principe sera répété pour chacun des éléments.
Exemple.
Prenons la liste de chiffres « 5 1 4 2 8 » et trions-la de manière croissante en utilisant
l'algorithme de tri à bulles. Pour chaque étape, les éléments comparés sont écrits en gras.
Première étape:
( 5 1 4 2 8 ) ( 1 5 4 2 8 ) Les éléments 5 et 1 sont comparés, et comme 5 > 1, l'algorithme
les intervertit.
( 1 5 4 2 8 ) ( 1 4 5 2 8 ) Interversion car 5 > 4.
( 1 4 5 2 8 ) ( 1 4 2 5 8 ) Interversion car 5 > 2.
( 1 4 2 5 8 ) ( 1 4 2 5 8 ) Comme 5 < 8, les éléments ne sont pas échangés.
Deuxième étape:
( 1 4 2 5 8 ) ( 1 4 2 5 8 ) Même principe qu'à l'étape 1.
(14258) (12458)
(12458) (12458)
(12458) (12458)
À ce stade, la liste est triée, mais pour le détecter, l'algorithme doit effectuer un dernier
parcours.
Troisième étape:
(12458) (12458)
(12458) (12458)
(12458) (12458)
(12458) (12458)
Comme la liste est triée, aucune interversion n'a lieu à cette étape, ce qui provoque l'arrêt de
l'algorithme.
Exerice
Effectuer à la main un tri à bulles de la liste : [72, 39, 29, 59, 43]
Vous pouvez visualiser ces divers tris à l’adresse suivante :
http://isn.codelab.info/ressources/algorithmique/algorithmes-de-tris/
Téléchargement