Samedi 10 Mai 2008
~ Algorithme de tri bulle ~
Menu
> Accueil

Programmation
> Algorithmes de tri
> Java

Réseaux Telecom
> Logiciel Vigie

Dossiers
> Trajectoire de comètes
> Gestion d'emploi du temps
> Tracking d'internautes
> Référencement
> Open Office
> Multi-agents dans les EIAH

Divers
> Album Photo
> Citations
> Recettes
> Bibliothèque
> Logiciels
> Mini-Annuaire

A propos
> Mon CV
> Me contacter
Recherche
Google
Sur ce site
Sur le web
Annonces
Accueil > Algorithmes de tri > Tri Bulle
sommaire
precedent accueil suivant

Aide & Téléchargement

Presentation

L'algorithme du tri bulle - ou bubble sort - consiste à regarder les différentes valeurs adjacentes d'un tableau, et à les permuter si le premier des deux éléments est supérieur au second. L'algorithme se déroule ainsi : les deux premiers éléments du tableau sont comparés, si le premier élément est supérieur au second, une permutation est effectuée. Ensuite, sont comparés et éventuellement permutés les valeurs 2 et 3, 3et 4 jusque (n-1) et n. Une fois cette étape achevée, il est certain que le dernier élément du tableau est le plus grand. L'algorithme reprend donc pour classer les (n-1) éléments qui précédent. L'algorithme se termine quand il n'y a plus de permutations possibles. Pour classer les n valeurs du tableau, il faut, au pire, effectuer l'algorithme n fois.

Cet algorithme porte le nom de tri bulle car, petit à petit, les plus grands éléments du tableau remontent, par le jeu des permutations, en fin de tableau. Dans un aquarium il en va de même : les plus grosses bulles remontent plus rapidement à la surface que les petites qui restent collés au fond.

Exemple

Evolution du tableau au fil de l'algorithme (en bleu, les éléments qui sont comparés, et éventuellement premutés, pour passer à la ligne suivante).

531264
351264
315264
312564
312564
312546
132546
123546
123546
123456

L'algorithme se termine car il n'y a plus de permutations possibles. Ce fait sera constaté grace à un dernier parcours du tableau ou aucune permutation n'a lieu.


Pseudo langage
C / C++ Caml Java OCaml
Caml (listes) OCaml (listes)

Complexité

Considérons la complexité, en nombre d'opérations du tri bulle, pour un tableau ou une liste de n éléments. Dans le pire des cas, ce qui correspond à un tableau préalablement trié de manière décroissante, il a des permutations jusqu'à ce que la liste ait été parcourue (n-1) fois.

Dans le cas du tri bulle non optimisé, cela reviens à faire (n-1) fois (n-1) comparaisons (et quelques permutations). Soit une complexité proportionnelle à (n-1)2=n2-2n+1, soit en O(n2).

Dans le cas du tri bulle optimisé, le nombre de comparaisons est donné grace au calcul suivant, soit une complexité moins élevée, mais toujours en O(n2)

sommaire
precedent accueil suivant
Accueil > Algorithmes de tri > Tri Bulle