Tri stupide
En informatique, le tri stupide, également appelé tri du singe ou bogo-tri ou bogosort, est un algorithme de tri particulièrement inefficace. Il est présenté pour des raisons pédagogiques, par comparaison aux méthodes de tri traditionnelles, ou comme exercice.
Problèmes liés | |
---|---|
Structure des données |
Pire cas | |
---|---|
Moyenne | |
Meilleur cas |
Pire cas |
---|
Algorithme
modifierLe tri stupide consiste à vérifier si les éléments sont ordonnés et s'ils ne le sont pas, à les mélanger aléatoirement, puis à recommencer autant de fois que nécessaire.
fonction tri_stupide (liste) tant que la liste n'est pas triée mélanger aléatoirement les éléments de la liste
L'algorithme est probabiliste, plus précisément c'est un algorithme de Las Vegas.
Complexité
modifierSi tous les éléments sont distincts deux à deux, il y a façons différentes de ranger éléments distincts dans une liste. Nous avons donc chance qu'une itération donnée de la boucle trie la liste.
Cet algorithme fait essentiellement deux types d'opérations : des comparaisons et des mélanges; Si les éléments sont distincts deux à deux, le nombre moyen de comparaisons est asymptotiquement équivalent à et le nombre moyen de mélanges est égal à [2].
Le pire cas n'est pas borné, pour la même raison qu'une pièce de monnaie peut tomber arbitrairement longtemps sur pile, mais la probabilité qu'il survienne est nulle. Cependant, le temps d'exécution moyen est fini, selon la même conclusion que celle du paradoxe du singe savant.
Références
modifier- (en) Hermann Gruber, Markus Holzer et Oliver Ruepp, « Sorting the Slow Way: An Analysis of Perversely Awful Randomized Sorting Algorithms », Fun with Algorithms: 4th International Conference, FUN 2007, Castiglioncello, Italy, June 3-5, 2007. Proceedings, Springer Science+Business Media, , p. 183-197 (ISBN 978-3-540-72913-6 et 978-3-540-72914-3, DOI 10.1007/978-3-540-72914-3_17).
- H. Gruber, M. Holzer and O. Ruepp: Sorting the Slow Way: An Analysis of Perversely Awful Randomized Sorting Algorithms, 4th International Conference on Fun with Algorithms, Castiglioncello, Italy, 2007, Lecture Notes in Computer Science 4475, pp. 183-197.