Vous êtes sur la page 1sur 6

Chapitre N°4: Les algorithmes de tri Mr.

Anis ELBAHI

LES ALGORITHMES DE TRI


Disponible sur www.elbahi.jimdo.com

A- Le tri d’un tableau :


0- Définition :
Un algorithme de tri est une suite d’instructions servant à ………………………………………………….
………………………………………… de façon ………………………… ou …………………………….

Exemples :
 Séquence triée : 12 – 15 – 88 – 121 – 122 – 714 – 901 – 2510
 Séquence non triée : 15.5 – 19 – 10.7 - 201 - 3 – 155.4

NB : dans la suite du chapitre on choisit de trier les séquences par ordre croissant.

1- Tri à bulles :
Exemple :

Principe :
Cette méthode consiste à faire remonter le plus grand élément du tableau en comparant les éléments successifs.
1- On compare le premier pair d’éléments.
2- Si T[1] > T[2] alors on permute T[1] et T[2], aller au pair suivant et répéter les étapes 1 et 2 jusqu’à comparer
le dernier pair T[N] et T[N-1]. A la fin de ce premier parcours on aura passé le plus grand élément du tableau
vers sa place finale qui est le Nième élément du tableau.
3- On recommence cette opération en parcourant de 1 à N-1 puis de 1 à N-2 et ainsi de suite.
4- On arrête le traitement si on arrive au dernier élément du tableau ou le tableau devient trié.

Lycée Othman Chatti M'saken 3SI- PROGRAMMATION 1/6


Chapitre N°4: Les algorithmes de tri Mr. Anis ELBAHI

Algorithme de tri à bulles :

0) DEF PROC Tri_bulles (N : entier ; Var T :TAB)


1) Répéter

Jusqu’a ( ) ou ( )
2) Fin Tri_bulles

2- Tri par sélection :

Exemple :
i=1 posmin=7  permuter T[1] et T[7]

i=2 posmin=6  permuter T[2] et T[6]

i=3 posmin=6  permuter T[3] et T[6]

i=4 posmin=6  permuter T[4] et T[6]

i=5 posmin=7  permuter T[5] et T[7]

i=6 posmin=7  permuter T[6] et T[7]

 Tableau Trié

Principe :
Cette méthode consiste à :
1- Trouver l’indice « position » (posmin) du plus petit élément du tableau.
2- Placer le plus petit élément (T[posmin]) à sa position finale (la première position)
3- Rechercher l’indice du second plus petit élément
4- Le placer à sa position finale (deuxième position)
5- Répéter le traitement précédent (3 et 4) jusqu'à ce que le tableau soit trié.

Lycée Othman Chatti M'saken 3SI- PROGRAMMATION 2/6


Chapitre N°4: Les algorithmes de tri Mr. Anis ELBAHI

Algorithme de tri par sélection :

0) DEF PROC Tri_select (N : entier ; Var T :TAB)


1) . Pour i de 1 à N-1 faire
.....................................................................
si (...................................... ) alors
...........................................................
...........................................................
...........................................................
...........................................................
Fin si
Fin Pour
2) Fin Tri_select

0) DEF FN PMin (T : TAB ; N, d : entier) : ....................


1) pm  d
Pour j de d+1 à N faire
Si T[j] < T[pm] alors
Rôle de la fonction PMin :
pm  j .............................................................................
Finsi
.............................................................................
Fin pour
............................................................................
2) PMin  pm
............................................................................
3) Fin PMin

Lycée Othman Chatti M'saken 3SI- PROGRAMMATION 3/6


Chapitre N°4: Les algorithmes de tri Mr. Anis ELBAHI

3- Tri par insertion :


Exemple :

C’est le même
principe du
classement d’un
dossier dans un
ensemble de
dossiers triés par
ordre alphabétique
ou numérique

Principe :
1- On commence par le deuxième élément du tableau.
2- On compare l’élément choisi (v) avec tous ses précédents dans la liste (la partie gauche du tableau) afin
de l’insérer dans la bonne position après avoir décalé les éléments qui sont supérieurs à (v) vers la droite.
3- Répéter l’étape 2 pour l’élément suivant jusqu’à arriver au dernier élément du tableau.

Algorithme de tri par insertion :


0) DEF PROC Tri_insert (N : entier ; VAR T : TAB)
1) Pour i de 2 à N faire
v  T[i]
ji
PROC decaler_d(T,j,v) Après avoir décalé les éléments qui sont supérieurs à v
T[j]  v je l’insère dans sa bonne position.

Fin pour
2) Fin Tri_insert

0) DEF PROC decaler_d (Var T :TAB ; Var j : entier ; v :entier)


1) Tant que (T [j-1] > v) et (j>1) Faire
T[j]  T[j-1]
j  j-1
Fin Tant que
2) Fin decaler_d

REMARQUE : il existe d’autres méthodes de tri comme : le tri shell, le tri fusion, le tri par tas, …

Lycée Othman Chatti M'saken 3SI- PROGRAMMATION 4/6


Chapitre N°4: Les algorithmes de tri Mr. Anis ELBAHI

B- Recherche d’un élément dans un tableau :


1- Introduction :
La recherche d’un élément dans un tableau est une pratique très courante en programmation. Nous allons voir
deux méthodes de recherche :
 ………………………………………………………
 ………………………………………………………

2- Recherche séquentielle :

Principe :
La recherche séquentielle d’un élément dans un tableau consiste à ……………………………… d’un élément
dans le tableau, par le fait de parcourir le tableau élément par élément jusqu’à ………………………… ce
dernier ou ………………………………………………………………………………………………….......………

Algorithme de recherche séquentielle:


0) DEF FN RECHSEQ (T :TAB ; N :entier ; V :entier) : booléen
1) i 0
Répéter
i  i+1
Jusqu'à (………………. ) ou (………………. )
2) si ( T[i] = V ) alors
OK  vrai
sinon
OK  faux
fin si
3) RECHSEQ  OK
4) Fin RECHSEQ

Activité 1:
Donner l’algorithme d’une fonction nommée existe qui vérifie si un caractère existe ou non dans une chaine de
caractères.

Lycée Othman Chatti M'saken 3SI- PROGRAMMATION 5/6


Chapitre N°4: Les algorithmes de tri Mr. Anis ELBAHI

3- Recherche dichotomique :
Principe :
La dichotomie (couper en deux) est un processus de recherche où à chaque étape l’espace de recherche se réduit
à l’une des parties.
Pour exécuter ce processus il faut que les éléments de l’espace de recherche soient ordonnés et finis.

Algorithme de recherche dichotomique:


0) DEF FN RECHERCHE (T :TAB ; N,M :entier) : booléen
1) inf  1
sup  N
OK  Faux
Répéter
i  (inf+sup ) div 2
Si (T[i] = M) alors
OK  Vrai
sinon si (M>T[i]) alors
inf  i +1
sinon
sup  i -1

finsi

Jusqu’à ((inf > sup) ou (OK = vrai))


2) RECHERCHE  OK
3) Fin RECHERCHE

Activité 2:
On vous demande de faire le programme pascal qui remplit un tableau T par N entiers positifs de façon
croissante avec 6<N<20.
Le programme doit par la suite saisir un entier quelconque et de vérifier s’il existe ou non dans le tableau en
appliquant la recherche dichotomique.

Lycée Othman Chatti M'saken 3SI- PROGRAMMATION 6/6

Vous aimerez peut-être aussi