Vous êtes sur la page 1sur 2

Chapitre 6 4ème.

Scientifiques
Les Algorithmes Avances
Tri & Recherche

I. Le  tri  d’un  tableau 


Définition 
Un algorithme de tri est un algorithme qui permet d’organiser une liste des éléments dans un 
ordre bien déterminé (croissant ou décroissant). 
Il existe plusieurs types de tri : 
 Tri par sélection
 Tri à bulles 
 Tri par insertion 
1.  Le  tri  par  sélection 
a)  Principe 
1) Sélectionner la position de pus petit élément du tableau (ou le plus grand) 
2) Le placer à sa position finale (1 ère position ou dernière) 
3)  Rechercher le second plus petit élément (ou le second plus grand élément) 
4)  Le placer à sa position finale (2 ème position ou l’avant dernière) 
5)  Répéter ce traitement jusqu’à la liste sera triée. 
b)  Application :
Soit un tableau T de n entiers avec 5<=n<=50, écrire un algorithme d'un
programme qui permet de trier les éléments de T dans l’ordre croissant.   
Algorithme principal 
1) Début tri_séléction
2)  Saisir (n) 
3) Remplir (T, n) 
4) Trier (T, n) 
5)  Affiher (T, n) 
6) Fin tri_séléction 

2.  Le  tri  à  bulles


a)  Principe
1. Comparer le 1 er et le 2 ème élément : s’ils sont désordonnés on les permute. 
2. Comparer le 2 ème et le 3 ème élément ; …… 
3. Refaire le traitement précédent jusqu’à l’avant dernier élément. 
4. Refaire les deux actions précédentes jusqu’à on n’aura pas de permutations. 
N.B : on va utiliser une variable V de type booléen initialisée à faux et elle prend la valeur vrai 
lorsqu’il y a une permutation. 
b)  Application 
Soit un tableau T de n entiers avec n≥2, écrire un programme qui permet de trier les éléme
nts de T  dans l’ordre croissant. 

3.  Le tri par insertion 
a)  Principe 
 Considérer les (i1) premiers éléments triés et placer le ième élément à sa place parmi les 
(i1)  déjà triés. 
 Répéter cette action jusqu’à atteindre la fin du tableau. 
L’action d’insertion se traduit : 
 Conserver la valeur à insérer dans une variable intermédiaire temp. 
 Déplacer les éléments T[i1], T[i2], …vers la droite tant que leur valeur est supérieur à 
temp. 
 On affecte à l’emplacement qui reste libre après le décalage la valeur de temp. 
II.  La  recherche  dans  un  tableau 
1.  La recherche séquentielle 
a)  Principe
La recherche séquentielle consiste à : 
Parcourir le tableau élément par élément en les comparants avec l’élément à rechercher jusqu’à tro
uver cette valeur ou atteindre la fin du tableau. 
La structure algorithmique à utiliser est une structure répétitive à condition d’arrêt. 
b)  Application 
Ecrire un algorithme d’une fonction intitulée recherche qui permet de vérifier l‘existe
ce d’un entier V dans un tableau T de n entiers. 
Algorithme 
0) début fonction recherche (T : tab ; n, m : entier) : booléen 
1) c ←0 
Répéter 
c ←c+1 
Jusqu’à (T[c]=m) ou (c=n)  2)  Si (T[c]=m) alors 
Recherche ←vrai 
Sinon  Recherche← faux 
Fin si 
3)  Fin recherche 
2.  La  recherche  dichotomique 
a)  Principe 
La dichotomie est appliquée pour rechercher un élément dans un ensemble fini et ordonné (
trié). 
On compare l’élément recherché à l’élément central du tableau. S’ils sont différents, on cherche à 
quelle moitié on peut trouver l’élément. 
On répète ce processus jusqu’à trouver l’élément où arriver à une partie de taille 1.

b)  Application
Ecrire un algorithme d’une fonction intitulée recherche2 qui utilise la technique de la recherche 
dichotomique pour vérifier l‘existence d’un entier V dans un tableau T de n entiers.  Spécification 
Résultat= vérifier l’existence 
Traitement : pour vérifier l‘existence de V dans T on doit suivre les étapes suivantes : 
 Initialiser la borne gauche (g) à 1 et la borne droite (d) à n
  Trouver l‘élément de milieu de T et le comparer à la valeur recherchée : structure 
Conditionnelle simple;
Selon le résultat on modifie soit la borne gauche soit la borne droite. 
Répéter ce processus jusqu’à trouver l’élément recherché ou la borne gauche dépasse la 
borne droite : structure itérative à condition d’arrêt. 
Les paramètres : T, V, n 
Algorithme 
1) début fonction recherche2 (T:tab ; n, m : entier) : booléen
2) g←0, d ←1 
3) Répéter 
i ←(g+d) div 2 
Si (V<T[i]) alors d ←i1 
sinon g ←i+1 
Fin si 
Jusqu’à (T[i]=V) ou (g>d)  4)  Si (T[i]=V) alors Recherche ←vrai 
Sinon  Recherche← faux 
Fin si 
5)  Fin recherche2

Vous aimerez peut-être aussi