Algorithme de tri
Un
algorithme de tri est, en informatique ou en mathématiques, un algorithme qui
permet d'organiser une collection d'objets selon un ordre déterminé. Les objets
à trier font donc partie d'un ensemble muni d'une relation d'ordre (de manière
générale un ordre total). Les ordres les plus utilisés sont l’ordre numérique
et l'ordre lexicographique (dictionnaire).
Suivant la
relation d'ordre considérée, une même collection d’objet peut donner lieu à
divers arrangements, pourtant il est possible de définir un algorithme de tri
indépendamment de la fonction d’ordre utilisée. Celui-ci ne fera qu'utiliser
une certaine fonction d’ordre correspondant à une relation d’ordre qui doit
permettre de comparer tout couple d'éléments de la collection.
La classification
des algorithmes de tri est très importante, car elle permet de choisir
l’algorithme le plus adapté au problème traité, tout en tenant compte des
contraintes imposées par celui-ci.
Exemples d'algorithmes de tri
ü Tri à bulles
ü Tri par sélection
ü Tri par insertion
Tri par
sélection :
Le tri par
sélection (ou tri par extraction) est un algorithme de tri par comparaison. Il
est particulièrement simple, mais inefficace sur de grandes entrées, car il
s'exécute en temps quadratique en le nombre d'éléments à trier.
Description :
Sur un
tableau de n éléments (numérotés de 1 à n), le principe du tri par sélection
est le suivant :
ü rechercher le plus
petit élément du tableau, et l'échanger avec l'élément d'indice 1 ;
ü rechercher le second
plus petit élément du tableau, et l'échanger avec l'élément d'indice 2 ;
ü continuer de cette
façon jusqu'à ce que le tableau soit entièrement trié.
En
pseudo-code, l'algorithme s'écrit ainsi :
………………………………………………………………
Tri à bulles :
Le tri à
bulles ou tri par propagation est un algorithme de tri qui consiste à faire
remonter progressivement les plus grands éléments d'un tableau, comme les
bulles d'air remontent à la surface d'un liquide.
Description :
L'algorithme
parcourt le tableau, et compare les couples d'éléments successifs. Lorsque deux
éléments successifs ne sont pas dans l'ordre croissant, ils sont échangés.
Après chaque parcours complet du tableau, l'algorithme recommence l'opération.
Lorsqu'aucun échange n'a lieu pendant un parcours, cela signifie que le tableau
est trié. On arrête alors l'algorithme.
En
pseudo-code, l'algorithme s'écrit ainsi :
………………………………………………………………
Tri par
insertion :
Le tri par
insertion est un algorithme de tri classique dont le principe est très simple.
C'est le tri que la plupart des personnes utilisent naturellement pour trier
des cartes : prendre les cartes mélangées une à une sur la table, et former une
main en insérant chaque carte à sa place.
Description :
Dans
l'algorithme, on parcourt le tableau à trier du début à la fin. Au moment où on
considère le i-ème élément, les éléments qui le précèdent sont déjà triés. Pour
faire l'analogie avec l'exemple du jeu de cartes, lorsqu'on est à la i-ème
étape du parcours, le i-ème élément est la carte saisie, les éléments
précédents sont la main triée et les éléments suivants correspondent aux cartes
encore mélangées sur la table.
L'objectif
d'une étape est d'insérer le i-ème élément à sa place parmi ceux qui précèdent.
Il faut pour cela trouver où l'élément doit être inséré en le comparant aux
autres, puis décaler les éléments afin de pouvoir effectuer l'insertion. En
pratique, ces deux actions sont fréquemment effectuées en une passe, qui
consiste à faire « remonter » l'élément au fur et à mesure jusqu'à rencontrer
un élément plus petit.
En
pseudo-code, l'algorithme s'écrit ainsi :
………………………………………………………………
Le tri
rapide (en anglais quicksort) est un algorithme de tri inventé par C.A.R. Hoare
en 19611 et fondé sur la méthode de conception diviser pour régner. Il est
généralement utilisé sur des tableaux, mais peut aussi être adapté aux listes.
Dans le cas des tableaux, c'est un tri en place mais non stable.
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 lui sont
inférieurs soient à sa gauche et que tous ceux qui lui sont supérieurs 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é.
Aucun commentaire:
Enregistrer un commentaire