Algorithmes de tri Un exemple. Enoncé : Entrées : Saisir n : entier naturel supérieur à 2. Saisir une liste de réels : x1, x2, ....., xn. Traitement : Pour i de 1 jusqu'à n-1 j prend la valeur n. Tant que i<j. Si xj<xj-1 alors échanger xj et xj-1 dans la liste Fin si j prend la valeur j-1 Fin Tant que Fin Pour Sortie Afficher la liste x1, x2, .... , xn. a) faire « fonctionner cet algorithme » avec la liste 5-1-4-2-8. b) Appliquer l'algorithme à d'autres liste et indiquer le rôle de cet algorithme. c) Programmer le avec Algobox I. Différents algorithme de tri 1. 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. a) faire « fonctionner cet algorithme » avec la liste 7-2-5-8-3. b) Voici le pseudo-code du tri à bulle. Programmer le avec Algobox. II. Travail à faire : 1. Chercher sur Internet les principes du tri à sélection (ou par extraction), du tri par insertion, du tri par fusion et du tri rapide (ou quicksort). 2. Les faire « fonctionner à la main » avec la liste 5-1-4-2-8. 3. Programmer le tri à sélection et le tri par insertion, avec Algobox Vous pouvez visualiser ces divers tris à l’adresse suivante : http://isn.codelab.info/ressources/algorithmique/algorithmes-de-tris/