0% ont trouvé ce document utile (0 vote)
16 vues38 pages

Slides Algorithmique-04

Transféré par

elogemaximesohou
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)
16 vues38 pages

Slides Algorithmique-04

Transféré par

elogemaximesohou
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

Introduction aux algorithmes de tri

Eugène C. Ezin

1 Enseignant-Chercheur

Université d’Abomey-Calavi.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 1 / 29


Définition de tri

Un algorithme de tri est, en informatique est un algorithme qui


permet d’organiser une collection d’objets selon une relation d’ordre
déterminée.

Les objets à trier sont des éléments d’un ensemble muni d’un ordre
total.

Les algorithmes de tri sont utilisés dans de très nombreuses situations.

Les algorithmes de tri sont en particulier utiles à de nombreux


algorithmes plus complexes dont certains algorithmes de recherche,
comme la recherche par dichotomie.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 2 / 29


Différents algorithmes de tri

Il existe plusieurs algorithmes de tri qu’on peut classer en deux catégories:


les algorithmes de tri lents;

les algorithmes de troi rapides.


C’est la notion de complexité que nous n’évoquerons pas en détail qui
permet de classifier les catégories en terme de lent et de rapide.
Retenons simplement
La complexité en temps d’un algorithme désigne le nombre d’opérations
élémentaires qui sont effectuées par cet algorithme.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 3 / 29


Les algorithmes de tri lent

On peut citer:
le tri à bulles;

le tri par sélection;

le tri par insertion;

etc.
Nous présenterons seulement le tri à bulles dans la suite de cette
présentation.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 4 / 29


Tri à bulles

Le principe du tri à bulles est le suivant:


L’algorithme du tri à bulles parcourt le tableau et compare les
éléments consécutifs. Lorsque deux éléments consécutifs ne sont pas
dans l’ordre, ils sont échangés.

Après un premier parcours complet du tableau, le plus grand élément


est forcément se trouve à la fin du tableau.

Le reste du tableau est en revanche encore en désordre. On le


parcourt à nouveau avec le même principe en s’arrêtant à
l’avant-dernier élément. Après ce deuxième parcours, les deux plus
grands éléments sont à leur position définitive.

Ce processus est répété sur les différents sous-tableaux jusqu’à ce que


les deux plus petits éléments soient placés à leur position définitive.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 5 / 29


Exercice d’application

Enoncé
Soit à trier par ordre croissant le tableau composé d’entiers composé des
huits éléments suivants:
10, 8, 6, 14, 9, 12, 5, 2 avec la méthode du tri à bulles.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 6 / 29


Première étape

10 8 6 14 9 12 5 2

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Première étape

10 8 6 14 9 12 5 2
8 10 6 14 9 12 5 2

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Première étape

10 8 6 14 9 12 5 2
8 10 6 14 9 12 5 2
8 6 10 14 9 12 5 2

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Première étape

10 8 6 14 9 12 5 2
8 10 6 14 9 12 5 2
8 6 10 14 9 12 5 2
8 6 10 9 14 12 5 2

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Première étape

10 8 6 14 9 12 5 2
8 10 6 14 9 12 5 2
8 6 10 14 9 12 5 2
8 6 10 9 14 12 5 2
8 6 10 9 12 14 5 2

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Première étape

10 8 6 14 9 12 5 2
8 10 6 14 9 12 5 2
8 6 10 14 9 12 5 2
8 6 10 9 14 12 5 2
8 6 10 9 12 14 5 2
8 6 10 9 12 5 14 2

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Première étape

10 8 6 14 9 12 5 2
8 10 6 14 9 12 5 2
8 6 10 14 9 12 5 2
8 6 10 9 14 12 5 2
8 6 10 9 12 14 5 2
8 6 10 9 12 5 14 2
8 6 10 9 12 5 2 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 7 / 29


Deuxième étape

8 6 10 9 12 5 2 14
6 8 10 9 12 5 2 14
6 8 10 9 12 5 2 14
6 8 9 10 12 5 2 14
6 8 9 10 12 5 2 14
6 8 9 10 5 12 2 14
6 8 9 10 5 2 12 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 8 / 29


Troisième étape

6 8 9 10 5 2 12 14
6 8 9 5 10 2 12 14
6 8 9 5 2 10 12 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 9 / 29


Quatrième étape

6 8 9 5 2 10 12 14
6 8 5 9 2 10 12 14
6 8 5 2 9 10 12 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 10 / 29


Cinquième étape

6 8 5 2 9 10 12 14
6 5 8 2 9 10 12 14
6 5 2 8 9 10 12 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 11 / 29


Sixième étape

5 6 2 8 9 10 12 14
5 2 6 8 9 10 12 14
5 2 6 8 9 10 12 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 12 / 29


Septième étape

2 5 6 8 9 10 12 14

Le tableau est donc trié!

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 13 / 29


Algorithme de tri à bulles

La définition de la fonction de tri a bulles() se présente comme suit:

Fonction de tri à bulles


Fonction tri a bulles(Tableau T : Entier ) Retourne Vide
Variables : i, j : Entier;
Debut
Repeter ∀i ∈ [Taille − 1, 1]
Repeter ∀j ∈ [0, i − 1]
Si (T [j + 1] < T [j]) Alors
echange(T [j + 1], T [j]);
FinSi
Fin
Remarquons qu’il existe d’autres variantes de l’algorithme du tri à bulles
par exemple le tri cocktail ou tri shaker, le tri à peigne ou combsort.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 14 / 29


Algorithme de tri à bulles (suite et fin)

La définition de la fonction echanger() se présente comme suit:

Fonction de tri à bulles


Fonction echange(Entier a, Entier b) Retourne Vide
Variables:tmp: Entier;
Debut
Si (a < b)
tmp ←− a;
a ←− b;
b ←− tmp;
FinSi
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 15 / 29


Les algorithmes de tri rapide

On peut citer:

le tri par dichotomie;

le tri par fusion;

le tri rapide;

etc.
Nous allons présenter par la suite le tri rapide.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 16 / 29


Principe du tri rapide

La méthode consiste à placer un élément du tableau (appelé pivot) à


sa place définitive, en permutant tous les éléments de telle sorte que
tous ceux qui sont inférieurs au pivot soient à sa gauche et que tous
ceux qui sont supérieurs au pivot soient à sa droite.

Cette opération s’appelle le partitionnement.

Pour chacun des sous-tableaux, on définit un nouveau pivot et on


répète l’opération de partitionnement. Ce processus est répété
récursivement, jusqu’à ce que l’ensemble des éléments soit trié.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 17 / 29


Pratiquement

Concrètement, pour partitionner un sous-tableau :


le pivot est placé à la fin (arbitrairement), en l’échangeant avec le
dernier élément du sous-tableau ;

tous les éléments inférieurs au pivot sont placés en début du


sous-tableau ;

le pivot est déplacé à la fin des éléments déplacés.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 18 / 29


Exercice d’application

Enoncé
Soit à trier par ordre croissant le tableau composé d’entiers composé des
huits éléments suivants:
10, 8, 6, 14, 9, 12, 5, 2 avec la méthode du tri rapide.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 19 / 29


Exercice d’application

Enoncé
Soit à trier par ordre croissant le tableau composé d’entiers composé des
huits éléments suivants:
10, 8, 6, 14, 9, 12, 5, 2 avec la méthode du tri rapide.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 20 / 29


Première étape

En choisissant l’entier 8 comme pivot, on obtient:

6 5 2 8 9 10 14 12

Tous les éléments inférieurs sont placés avant 8 et tous les éléments
plus grands après 8.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 21 / 29


Deuxième étape

On considère chaque sous-tableau et on considère le pivot comme


étant le premier élément à permuter avec le dernier élément.

La position du pivot ne sera pas changé.

On applique le même principe de positionnement des éléments par


rapport au pivot: tous les éléments plus petits avant le pivot et tous
les éléments plus grands après le pivot.

2 5 6 8 12 10 14 9

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 22 / 29


Deuxième étape

On considère chaque sous-tableau et on considère le pivot comme


étant le premier élément à permuter avec le dernier élément.

La position du pivot ne sera pas changé.

On applique le même principe de positionnement des éléments par


rapport au pivot: tous les éléments plus petits avant le pivot et tous
les éléments plus grands après le pivot.

2 5 6 8 12 10 14 9
2 5 6 8 9 12 10 14

Tous les éléments inférieurs sont placés avant 6 et tous les éléments plus
grands après 8.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 22 / 29


Troisième étape (suite et fin)

On considère chaque sous-tableau et on considère le pivot comme


étant le premier élément à permuter avec le dernier élément.

La position du pivot ne sera pas changé.

On applique le même principe de positionnement des éléments par


rapport au pivot: tous les éléments plus petits avant le pivot et tous
les éléments plus grands après le pivot.

5 2 6 8 9 14 10 12

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 23 / 29


Troisième étape (suite et fin)

On considère chaque sous-tableau et on considère le pivot comme


étant le premier élément à permuter avec le dernier élément.

La position du pivot ne sera pas changé.

On applique le même principe de positionnement des éléments par


rapport au pivot: tous les éléments plus petits avant le pivot et tous
les éléments plus grands après le pivot.

5 2 6 8 9 14 10 12
2 5 6 8 9 10 12 14

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 23 / 29


Troisième étape (suite et fin)

On considère chaque sous-tableau et on considère le pivot comme


étant le premier élément à permuter avec le dernier élément.

La position du pivot ne sera pas changé.

On applique le même principe de positionnement des éléments par


rapport au pivot: tous les éléments plus petits avant le pivot et tous
les éléments plus grands après le pivot.

5 2 6 8 9 14 10 12
2 5 6 8 9 10 12 14

Tous les éléments du tableau sont ainsi triés.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 23 / 29


Présentation des fonctions de tri rapide

Il y a trois fonctions qui peuvent être mise en exergue à savoir:


partionner(). Cette fonction permet de faire le partionnement du
tableau.

echanger(). Elle est utiliser pour la permutation des éléments


notamment le pivot et le dernier élément du sous-tableau.

triRapide(). Cette fonction fait appel aux deux autres et à elle-meme


de façon résursive.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 24 / 29


Présentation du partionnement

Fonction partitionner()
Fonction partitionner(Tableau T:Entier, Entier premier, Entier dernier, Entier
pivot) Retourne Entier
Variables: i, j: Entier;
Debut
echange (T[pivot], T[dernier]);
j ←− premier;
Repeter ∀i ∈ [premier , dernier − 1]
Si (T[i] ≤ T[j]) Alors
Debut
echange(T[i],T[j])
j ←− j+1;
Fin
FinSi
echange(T[dernier],T[j]);
Retourne j;
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 25 / 29


Présentation de l’échange

Fonction echange()
Fonction echange (a Entier, b Entier) Retourne Vide
Variable: tmp: Entier;
Debut
Si(a ≤ b) Alors
tmp ←− a;
a ←− b;
b ←− tmp;
FinSi
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 26 / 29


Présentation de la fonction du tri rapide

Fonction TriRapide()
Fonction triRapide (Tableau T, entier premier, entier dernier) Retourne
Vide
Variable:
; Debut
Si(premier ≤ dernier) Alors
pivot ←− choixPivot(T, premier, dernier);
pivot ←− partionner(T, premier, dernier, pivot);
pivot ←− triRapide(T, premier, pivot-1);
pivot ←− triRapide(T, pivot+1, dernier);
Finsi
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 27 / 29


Exercices

Utiliser le principe du tri rapide pour trier par ordre décroissant puis
par ordre croissant le tableau d’entiers composé de
6, 5, 2, 5, 9, 19, 3, 9, 1, 7.

Utiliser le principe du tri à bulles pour trier par ordre décroissant puis
par ordre croissant le tableau d’entiers composé de
6, 5, 2, 5, 9, 19, 3, 9, 1, 7.

Faites des recherches sur le tri dichotomique et le tri de fusion.


Appliquer ces algorithmes de tri sur le tableau précédent.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 28 / 29


Conclusion

Merci pour votre attention.

Eugène C. Ezin (Université d’Abomey-Calavi) Introduction aux algorithmes de tri 29 / 29

Vous aimerez peut-être aussi