Algorithmes de tri

publicité
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/
Téléchargement