Académique Documents
Professionnel Documents
Culture Documents
Outline
Tri par sélection
Tri par insertion
Tri à bulles
Tri rapide
Tri Fusion
1
Algorithmes de tri Tri par Sélection
2
Algorithmes de tri Tri par Sélection
3
Algorithmes de tri Tri par Insertion
4
Algorithmes de tri Tri par Insertion
10
5
Algorithmes de tri Tri à bulles
11
12
6
Algorithmes de tri Tri à bulles
13
14
7
Algorithmes de tri Tri rapide
Tri rapide
Principe:
Le principe consiste à choisir un élément du tableau, appelé Pivot ( par exemple la
première valeur du tableau) qui va servir à partitionner ce tableau en deux parties.
Toutes les valeurs d'une partie seront inférieures au Pivot, les autres supérieures.
Ensuite, de façon récursive, l'algorithme va recommencer le tri dans les deux sous
tableaux ainsi obtenus.
Le tri rapide est fondé sur le paradigme ‘’diviser pour régner’’.
Exemple:
15
Régner: trier (par tri rapide) les deux tableaux par des appels récursifs.
16
8
Algorithmes de tri Tri rapide
17
9
Algorithmes de tri Tri rapide
Tri rapide
Complexité
Procédure Tri_rapide (varT:tab; deb, fin: entier)
Var Pivot : entier
Début
si (deb<fin) alors
Pivot← partitionner (T,deb,fin, piv) T partitionner (n)
Tri_rapide (deb, Pivot)
Tri_rapide (Pivot+1, fin) T (Pivot-deb +1)
Finsi T (fin - Pivot )
Fin
19
10
Algorithmes de tri Tri par fusion
Tri par fusion
Principe:
Le principe consiste à trier deux tableaux de taille n/2 et ensuite de les fusionner
de sorte que le tableau final soit trié. Ce tri utilise une notion de récursivité (un
tableau est la somme de deux tableaux).
Le tri fusion est construit suivant la stratégie ‘’diviser pour régner’’.
Exemple:
21
Régner: trier (par fusion) les deux tableaux par des appels récursifs.
Combiner: combiner les deux tableaux de façon que le tableau T reste trié.
22
11
Algorithmes de tri Tri par fusion
12
Algorithmes de tri Tri fusion
Tri fusion
Complexité
Procédure Tri_fusion (varT:tab; deb, fin: entier)
Var milieu : entier
Début
si (deb<fin) alors
milieu← (deb + fin)/2
Tri_fusion (T, deb, milieu) T (n/2)
Tri_fusion (T, milieu+1, fin) T (n/2 )
Fusionner (T,deb, milieu, fin)
T fusionner (n)
Finsi
Fin
T(n) = 2 T (n/2 )+T fusionner (n)
T(n) = 2 T (n/2 )+ c n
13