Algorithmes de tri
Un exemple.
Enoncé :
Entrées :
Saisir n : entier naturel supérieur à 2.
Saisir une liste de réels : x
1
, x
2
, ....., x
n
.
Traitement :
Pour i de 1 jusqu'à n-1
j prend la valeur n.
Tant que i<j.
Si x
j
<x
j
-1 alors
échanger x
j
et x
j
-1 dans la liste
Fin si
j prend la valeur j-1
Fin Tant que
Fin Pour
Sortie
Afficher la liste x
1
, x
2
, .... , x
n
.
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.
( 1 4 2 5 8 ) ( 1 2 4 5 8 )