Vous êtes sur la page 1sur 23

LES ALGORITHME DE TRI

o Présenté par : o Encadré par :


 Pr. Rachid AIT DAOUD.
 Hajar ER.REGHAY . o Filière :
 Oumaima EL HABTI .  Génie informatique .
Plan :
1
Introduction:
2
La Complexité:
3 Les Algorithmes De Tri:
 Le tri par insertion:
 Le tri à bulles :
 Le tri fusion :
 Le tri par sélection:
 Le tri rapide :
1
1-Introdction:
 On désigne par "tri" l'opération consistant à ordonner un
ensemble d'éléments en fonction de clés sur les quelles est définie
une relation d'ordre.
Les algorithmes de tri ont une grande importance pratique. Ils
sont fondamentaux dans certains domaines, comme l'informatique de
gestion où l'on tri de manière quasi-systématique des données avant
de les utiliser.
L'étude du tri est également intéressante en elle-même car il s'agit
sans doute du domaine de l'algorithmique qui a été le plus étudié et
qui a conduit à des résultats remarquables sur la construction
d'algorithmes et l'étude de leur complexité.
2
 On a plusieurs des tris ,et ces derniers sont classés en deux parties :

Les tri stable : Les tri non stable :


Le tri par insertion Le tri par sélection
Le tri à bulles Le tri rapide
Le tri fusion

 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 :

o Le meilleur des cas Ω:  «grande omèga »


o Le moyen des cas θ : « grande théta »
o Le pire des cas O : «grande o » 
5
2-2- la complexité temporelle:
- C’est définie en fonction de la taille d’entrée n en utilisant la notation
« grande o » .

- Nous utilisons la notation grande o  « O » pour classer les algorithmes en


fonction de leur temps d’exécution au fur et à mesure que la taille d’entrée n
augmente .

- La fonction O est le taux de croissance dans le pire des cas en fonction de la


taille d’entrée n.

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 :

 opération arithmétique ou logique (+ , - ,et , ou ).


 opération d’affectation (x5) .
 vérification d’une condition (x>1) .
 opération d’entrée / sortie ( lire ou écrire ) .

la complexité de chaque opération de base est constant ou O(1)

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 :

Pour i 1 à n pas 1 faire affectation :O(1)

Ecrire (“entrer un nombre b :“) Ecriture :O(1)

Lire (b) lecture :O(1)

Ecrire (“i X b“, i*b ) Ecriture :O(1) , opération arithmétique :O(1)

Fin pour

Donc la complexité de l’exemple ci - dessus est : O(5n)


8
3) la complexité de la structure si , sinon correspond à la complexité de la
condition (O(1)) plus la complexité la plus grande entre “ alors “ et “sinon“.
Exemple :
Si n < 6 alors vérification d’une condition :O(1)
Ecrire (“ bonjour “) Ecriture : O(1)
Sinon
Pour i  1 à n pas 1 faire affectation : O (1)
+
Ecrire (“ bonjour “) Ecriture : O (1)
=
O(2n)
Fin pour
Fin si

La complexité de l’exemple ci – dessus est :


O(1) + Max (O(1),O(2n))= O(2n+1) 9
3-Les Algorithmes De Tri :
 Le tri par insertion:
• Ordonner les deux premiers éléments.
• Insérer le 3e élément de manière à ce que les 3 premiers éléments soient
triés.
•Insérer le 4e élément à “sa” place pour que. . .

•…
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 i1 à n-1 faire
tmp t[i]
j i
Tantque (j>0) et (t[j-1]> tmp )faire
t[j] t[j-1]
jj-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

à 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.

12
Algorithme tri_bulles
Variables i, n : entier
permut : booléen
Tableau t[200]:entier
algorithme: Début
permut = faux
Pour i0 à 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 :

5, 10, 13, 15, 19, 20, 35 3, 7, 12, 16, 25, 38, 40

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: K2
Tant que i <= n et j<= m faire
Kk+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] Kk+1 Pour j  i à n faire
variable n, m, i, j, k: Fin si Si t1[j]<>t3[k-1] alors
entier ii+1 T3[k]t1[j]
début Sinon Kk+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] Kk+1 Fin si
i2 Fin si Ecrire (‘’ le tableau résultant trié sans
j1 jj+1 répétition :’’)
Sinon Fin si Pour i  1 à k-1 faire
t3[1]t2[1] Fin tant que Ecrire ( t3[i])
j2 Si i >n alors Fin pour
i1 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

• Trouver le 2e plus petit et le mettre en seconde position

• Trouver le 3e plus petit élément et le mettre à la 3e place

•...

16
Algorithme tri_selection
Variables m , i, j , n , temp: entiers
Tableau tab [200]:entier
Début
algorithme: Pour i 0 à n -2 faire
mi
Pour ji+1 à n-1 faire
Si tab [j]<tab[m] alors
mj
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) :

Si le tableau a un seul élément Arrêter

Sinon

Choisir le pivot

Réorganiser le tableau selon notre 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

Vous aimerez peut-être aussi