Tri Par Sélection - Wikipédia

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

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.

Sommaire
1 Description générale
2 Propriétés
3 Complexité
4 Voir aussi
5 Références

Description générale
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 :

procédure tri_selection(tableau t, entier n)


pour i de 1 à n - 1
min ← i
pour j de i + 1 à n
si t[j] < t[min], alors min ← j
fin pour
si min ≠ i, alors échanger t[i] et t[min]
fin pour
fin procédure

L'invariant de boucle suivant permet de prouver la correction de l'algorithme : à la


fin de l'étape i, le tableau est une permutation du tableau initial et les i premiers
éléments du tableau coïncident avec les i premiers éléments du tableau trié. Animation
représentant le
Une variante consiste à procéder de façon symétrique, en plaçant d'abord le plus tri par sélection
grand élément à la fin, puis le second plus grand élément en avant-dernière position,
etc.

Le tri par sélection peut aussi être utilisé sur des listes. Le principe est identique, mais au lieu de
déplacer les éléments par échanges, on réalise des suppressions et insertions dans la liste.
Propriétés
Appliqué à un tableau, le tri par sélection est un tri sur place (les éléments sont triés dans la structure)
mais n'est pas un tri stable (l'ordre d'apparition des éléments égaux n'est pas préservé).

Appliqué à une liste, le tri par sélection est stable à condition de déplacer la première occurrence du plus
petit élément à chaque étape.

Complexité
Dans tous les cas, pour trier n éléments, le tri par sélection effectue n(n-1)/2 comparaisons. Sa
1
complexité est donc Θ(n2). De ce point de vue, il est inefficace puisque les meilleurs algorithmes
s'exécutent en temps . Il est même moins bon que le tri par insertion ou le tri à bulles, qui
sont aussi quadratiques dans le pire cas mais peuvent être plus rapides sur certaines entrées particulières.

Par contre, le tri par sélection n'effectue que peu d'échanges :

n-1 échanges dans le pire cas, qui est atteint par exemple lorsqu'on trie la séquence 2,3,…,n,1 ;
2
en moyenne , c'est-à-dire si les éléments sont deux à deux
distincts et que toutes leurs permutations sont équiprobables (en effet, l'espérance du nombre
d'échanges à l'étape i est );
aucun si l'entrée est déjà triée.

Ce tri est donc intéressant lorsque les éléments sont aisément comparables, mais coûteux à déplacer dans
la structure.

Voir aussi
(fr)Implémentations du tri par sélection sur wikibooks.
(en)Illustration dynamique du tri par sélection (http://www.sorting-algorithms.com/selection-sort)
Algorithme de sélection

Références
1. Voir par exemple tri fusion, tri rapide et tri par tas
2. (en) Donald E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching, Addison-Wesley
1973, (ISBN 978-0-201-03803-3) (section 5.2.3, p. 157, exercice 4)

Ce document provient de « http://fr.wikipedia.org/w/index.php?


title=Tri_par_sélection&oldid=110105790 ».

Dernière modification de cette page le 20 décembre 2014 à 13:07.


Droit d'auteur : les textes sont disponibles sous licence Creative Commons paternité partage à l’identique
; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi
que les crédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les
auteurs et mentionner la licence.
Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance
régie par le paragraphe 501(c)(3) du code fiscal des États-Unis.

Vous aimerez peut-être aussi