Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
On dit qu'un algorithme de tri est stable s'il ne modifie pas l'ordre
initial des clés identiques.
3
Remarque:
a) Les tris que veux à rappelé ont les tris les plus utilisé mais c’est pas les touts
tris .
On a aussi les tris suivants (le tri shaker – le tri gnome – le tri à peigne – le tri
de Shell …) .
b) Pour comparer les algorithmes de tri, nous utilisons ce que l'on appelle
"la complexité" car c'est un critère majeur et une estimation direct du temps
d'exécution l'algorithme.
4
2-la complexité:
2-1-Définition:
La complexité d'un algorithme consiste en l'étude formelle de la quantité de
ressources (par exemple de temps ou d'espace) nécessaire à l'exécution de
cet algorithme.
Parmi ses avantages elle nous aide à choisir le meilleur, et le plus qualitatif
algorithme...
Dans la complexité on a trois des cas :
6
2-3-Les Règles de calcul de la
complexité :
1)pour calculer la complexité grande o d’un algorithme il faut compter
le nombre d’opérations de base qu’il effectue comme :
7
2)la complexité d’une boucle est la complexité bloc interne dans la boucle
multipliée par le nombre de fois que le bloc interne est répété .
Exemple :
Fin pour
•…
A la fin de la i e itération, les i premiers éléments de T
sont triés et rangés au début du tableau T ′ .
10
algorithme: Algorithme tri_insertion
Variables i , j , n, tmp: entiers
Tableau t[200]:entier
début
Pour i1 à n-1 faire
tmp t[i]
j i
Tantque (j>0) et (t[j-1]> tmp )faire
t[j] t[j-1]
jj-1
Fin tantque
t[j] tmp
Fin pour
fin
11
Le tri à bulles :
Le principe du tri à bulles (bubble sort ou sinking sort) est de comparer deux
permutation si e1 > e2. On continue de trier jusqu'à ce qu'il n'y ait plus de
permutation.
12
Algorithme tri_bulles
Variables i, n : entier
permut : booléen
Tableau t[200]:entier
algorithme: Début
permut = faux
Pour i0 à n-2 faire
Si (t[i]>t[i+1]) alors
Échanger t[i]et t[i+1]
permut = vrai
Fin si
Fin pour
Tantque (permut =vrai )
Fin
13
Le tri fusion :
Idée : fusionner deux tableaux triés pour former un unique tableau trié se fait
facilement :
3,5,7,10,12,13,15,16,19,20,25,35
3,5,7,10,12,13,15,16,19,20,25,35,38
3,5,7,10,12,13,15,16,19,20
3,5,7,10,12,13,15,16,19,20,25
3,
3,5,
3,5,7,
3,5,7,10,
3,5,7,10,12,
3,5,7,10,12,13,
3,5,7,10,12,13,15,
3,5,7,10,12,13,15,16,
3,5,7,10,12,13,15,16,19
3,5,7,10,12,13,15,16,19,20,25,35,38,40
14
algorithme: K2
Tant que i <= n et j<= m faire
Kk+1
Fin si
Si t1[i]<t2[j] alors Fin pour
Algorithme fusion Si t1[i]<>t3[k-1] alors Fin si
Variable tableau t1[n], T3[k] t1[i] Si j>m alors
t2[m],t3[m + n] Kk+1 Pour j i à n faire
variable n, m, i, j, k: Fin si Si t1[j]<>t3[k-1] alors
entier ii+1 T3[k]t1[j]
début Sinon Kk+1
…. Si t2[j]<>t3[k-1] alors Fin si
Si t1[1]<t2[1] alors T3[k]t2[j] Fin pour
t3[1]t1[1] Kk+1 Fin si
i2 Fin si Ecrire (‘’ le tableau résultant trié sans
j1 jj+1 répétition :’’)
Sinon Fin si Pour i 1 à k-1 faire
t3[1]t2[1] Fin tant que Ecrire ( t3[i])
j2 Si i >n alors Fin pour
i1 Pour i j à m faire Fin
Fin si Si t2[i]<>t3[k-1]alors
T3[k]t2[i]
15
Le tri par sélection:
• Trouver le plus petit élément et le mettre au début de la liste
•...
16
Algorithme tri_selection
Variables m , i, j , n , temp: entiers
Tableau tab [200]:entier
Début
algorithme: Pour i 0 à n -2 faire
mi
Pour ji+1 à n-1 faire
Si tab [j]<tab[m] alors
mj
Fin si
Fin pour
temp tab [m]
tab[m]tab[i]
tab[i]temp
Fin pour
Fin 17
Le tri rapide
Un autre tri récursif. . . plus efficace en pratique.
Etant donné un tableau de T[1, . . . , n] :
• si n = 1, retourner le tableau T.
• sinon :
• Choisir un élément (le “pivot”) p dans T
• Placer les éléments inférieurs à p au début de T
• Placer p à sa place dans T
• Placer les éléments supérieurs à p à la fin de T
• Trier la première partie de T puis la seconde. . .
18
Exemple:
20, 15, 10, 35, 19, 13, 5, 3, 12, 7, 16, 40, 25, 38
15, 10, 19, 13, 5, 3, 12, 7, 16, 20, 35, 40, 25, 38
À trier ! À trier !
19
algorithme:
triRapide (début, fin) :
Sinon
Choisir le pivot
triRapide(début, pivot - 1)
triRapide(pivot + 1, fin) 20
Résumé :
1-La complexité :
a- la différence entre la complexité temporelle et spatiale .
b- De quoi la complexité nous profite-t-elle dans les algorithmes?
2-Les algorithmes de tri :
a- définition .
b-la différence entre les tris stables et les tris non stables .
c- le principe et la forme de l'algorithme de :
- Tri par insertion.
-Tri à bulles .
-Tri fusion.
-Tri par sélection.
-Tri rapide.
21