0% ont trouvé ce document utile (0 vote)
661 vues7 pages

1-Algorithmes de Tri

Ce document décrit trois algorithmes de tri de tableau: le tri par sélection, le tri par insertion et le tri à bulle. Il explique en détail le fonctionnement de chacun avec des exemples et le pseudo-code correspondant.

Transféré par

nourchene.dridi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
661 vues7 pages

1-Algorithmes de Tri

Ce document décrit trois algorithmes de tri de tableau: le tri par sélection, le tri par insertion et le tri à bulle. Il explique en détail le fonctionnement de chacun avec des exemples et le pseudo-code correspondant.

Transféré par

nourchene.dridi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1 ALGORITHMES DE TRI DES TABLEAUX ASD2

ALGORITHMES DE TRI DES TABLEAUX

I. Introduction
Un algorithme de tri permet d’ordonnée les données dans un tableau, une liste ou un fichier
selon un critère bien déterminé dans ordre croissant ou décroissant. L’objectif principal de
tri des données est de faciliter et minimiser le temps de recherche. Par exemple, si on a un
tableau contenant mille réelles et on veut vérifier l’existence ou non d’un élément, il sera
plus difficile de trouver cet élément si le tableau n’est pas trié puisque nous allons effectuer
une recherche exhaustive. Par contre, si le tableau est trié le temps de recherche sera moins
important puisque on peut faire des sauts pour localiser rapidement l’élément en utilisant
par exemple une recherche dichotomique.

Il existe plusieurs algorithmes de tri dont la différence réside principalement dans le temps
d’exécution exprimé par ce qu’on appelle la complexité algorithmique du programme.
Egalement, on peut les distinguer par leurs stabilités. Un algorithme de tri est stable s’il ne
modifie pas l'ordre initial des éléments égaux. Un algorithme de tri est instable s’il modifie
l'ordre initial des éléments égaux.

La figure ci-dessous illustre quelques algorithmes de tri très connus.

Tri

Insertion Sélection Bulle Fusion Shell Rapide

Gnome Shaker Peigne

1|Page
1 ALGORITHMES DE TRI DES TABLEAUX ASD2

Dans ce cours nous allons s’intéressé aux trois types les plus simples qui sont : le tri par sélection, le
tri par insertion et le tri à bulle.

II. Le tri par sélection


L’algorithme de tri par sélection consiste à chercher le plus petit élément du tableau puis le
permuter avec le premier élément du tableau, puis faire la même chose mais permuter le
petit élément avec le deuxième élément du tableau et ainsi de suite jusqu’à terminer tous le
tableau. Il existe une autre méthode de tri par sélection qui utilise un autre tableau comme
résultat. Donc au lieu de permuter avec le premier élément du tableau, il suffit de copier le
minimum dans l’autre tableau et ainsi de suite mais toute en remplaçant la valeur du
minimum par la valeur maximale dans le tableau original.

On a le tableau suivant contenant cinq entier et on veut le trié en utilisant le tri par
sélection. La case en rouge indique le minimum qu’on va permuter avec l’élément courant.
La flèche en bleu indique l’élément courant.

 Méthode avec la permutation

Itération n°1 10 3 1 5 9 permutation

Itération n°2 1 3 10 5 9 Pas de permutation

Itération n°3 1 3 10 5 9 permutation

Itération n°4 1 3 5 10 9 permutation

Fin 1 3 5 9 10

2|Page
1 ALGORITHMES DE TRI DES TABLEAUX ASD2

 Méthode avec un autre tableau

La case en vert indique le changement du minimum par le maximum du tableau pour ne pas
être considéré dans la prochaine recherche.

Itération n°1 10 3 1 5 9 1

Itération n°2 10 3 10 5 9 1 3

Itération n°3 10 10 10 5 9 1 3 5

Itération n°4 10 10 10 10 9 1 3 5 9

Itération n°5 10 10 10 10 10 1 3 5 9 10

Le pseudo-code de l’algorithme de tri par sélection en utilisant la méthode de permutation


est écrit comme suit sachant que n est le nombre d’élément du tableau:

Procédure Tri_Selection(var T : tableau, n : entier)


i,min : entier
Début
Pour i de 0 à n - 2
min  MinTab(T,i,n) // donner la position du minimum
Si min <> i alors
permutTab(T,i,min)
Fin si
Fin pour
Fin procédure
//------------------------------------------------------------------
Fonction MinTab(T : tableau, i : entier, n : entier) retourne entier
min,j : entier
Début
Min  i
Pour j de i+1 à n-1
si T[j]<T[min] alors
min  j
3|Page
1 ALGORITHMES DE TRI DES TABLEAUX ASD2

Fin si
Fin pour
MiniTab  min
Fin fonction
//------------------------------------------------------------------
Procédure PermutTab(var T : tableau, i : entier, j : entier)
bf : type de l’élément
Début
Bf  T[i]
T[i]  T[j]
T[j]  bf
Fin procédure

III. Le tri par insertion


Le tri par insertion consiste à prendre l’ième élément du tableau et chercher sa bonne
position puis effectuer un décalage jusqu’à cette position puis l’insérer. Dans ce qui suit une
exécution manuelle de l’algorithme. On a un tableau de cinq entiers, l’algorithme commence
par l’indice 1 puis cherche la bonne position de cet élément toute en sauvegardant sa valeur
en dehors du tableau. Puis effectuer une série de décalage jusqu’à la bonne position dans la
laquelle l’élément va être insérer et ainsi de suite.

Elem

Itération n°1 10 3 1 5 2 3 Décalage de {10}

Itération n°2 3 10 1 5 2 1 Décalage de {3,10}

Itération n°3 1 3 10 5 2 5 Décalage de {10}

Itération n°4 1 3 5 10 2 2 Décalage {3,5,10}

Fin 1 2 3 5 10

Le pseudo-code de la méthode de tri par insertion est écrit comme suit sachant que n est le
nombre des éléments du tableau.

4|Page
1 ALGORITHMES DE TRI DES TABLEAUX ASD2

Procédure Tri_Insertion(var T : tableau, n : entier)


i : entier
Début
Pour i de 1 à n - 1
Décalage(T,i,n)
Fin pour
Fin procédure
//------------------------------------------------------------------
Procédure Décalage(var T : tableau, i : entier)
j : entier
elem : type de l’élément
Début
elem  T[i]
j  i-1
Tant que j>=0 et elem<T[j]
T[j+1]  T[j]
j  j-1
Fin tant que
T[j+1]  elem
Fin fonction

IV. Le tri à bulle


Le tri à bulle consiste à comparer les éléments consécutifs deux à deux du tableau puis faire
des permutations puis répéter l’opération dès le début. L’algorithme s’arrête lors qu’il n’y
aura plus de permutation. Dans l’exemple qui suit on décrit l’exécution de l’algorithme de tri
à bulle. Le bleu indique qu’il y a une permutation entre les éléments et le vert indique qu’il
n’y a pas de permutation.

Itération n°1 i=0 10 3 1 5 9 Permut=vrai

Itération n°2 i=1 3 10 1 5 9 Permut=vrai

Itération n°3 i=2 3 1 10 5 9 Permut=vrai

Itération n°4 i=3 3 1 5 10 9 Permut=vrai

Itération n°5 i=0 3 1 5 9 10 Permut=vrai


5|Page
1 ALGORITHMES DE TRI DES TABLEAUX ASD2

Itération n°6 i=1 1 3 5 9 10

Itération n°7 i=2 1 3 5 9 10

Itération n°8 i=3 1 3 5 9 10

Itération n°9 i=0 1 3 5 9 10 Permut=faux

Itération n°10 i=1 1 3 5 9 10

Itération n°11 i=2 1 3 5 9 10

Itération n°12 i=3 1 3 5 9 10 Fin

Le pseudo-code de la méthode de tri à bulle est écrit comme suit sachant que n est le
nombre des éléments du tableau.

Procédure Tri_Bulle(var T : tableau, n : entier)


permut : booléen
i : entier
Début
permut  vrai
i=0
Tant que permut=vrai
permut  faux
Pour i=0 à n-2
Si T[i]>T[i+1] alors
PermutTab(T,i,i+1)
permut  vrai
Fin si
Fin pour
Fin tant que
Fin procédure
6|Page
1 ALGORITHMES DE TRI DES TABLEAUX ASD2

//------------------------------------------------------------------
Procédure PermutTab(var T : tableau, i : entier, j : entier)
bf : type de l’élément
Début
bf  T[i]
T[i]  T[j]
T[j]  bf
Fin procédure

7|Page

Vous aimerez peut-être aussi