Ce matin, mes collègues m'ont ramené à l'époque de l'université en discutant des algorithmes de tri. Nous nous sommes souvenus de nos préférés comme StupidSort et l'un d'entre nous était sûr d'avoir vu un algorithme qui était O(n!)
. J'ai donc commencé à chercher les "pires" algorithmes de tri que je pouvais trouver.
Nous avons supposé qu'un tri complètement aléatoire serait plutôt mauvais (c'est-à-dire qu'il faut randomiser les éléments - sont-ils dans l'ordre ? non ? randomiser à nouveau), et j'ai cherché et découvert que cela s'appelle apparemment BogoSort, ou Monkey Sort, ou parfois simplement Random Sort .
Dans le pire des cas, Monkey Sort semble avoir une performance de O()
une performance optimale de O(n)
et une performance moyenne de O(n·n!)
.
Quel est l'algorithme de tri actuellement officiellement accepté qui présente la pire performance moyenne de tri (et qui est donc pire que O(n·n!)
) ?
11 votes
Combien de bogomips par bogosort ? Les esprits curieux veulent le savoir.
13 votes
Pour clarifier, excluez-vous le cas trivial où la meilleure performance est O() ?
0 votes
@tloflin - En général, oui, je suppose que tout algorithme nommé doit avoir une faible chance de succès. Je vais clarifier un peu la question : existe-t-il des algorithmes qui sont pires que n*n ! en moyenne ?
3 votes
c2.com/cgi/wiki?MultiplyAndSurrender
0 votes
Mon buttheadsort, détaillé ci-dessous, serait pire que n*(n!^n) !
7 votes
J'ai entendu dire que la sorte de singe est également connue sous le nom de "sorte d'homme ivre", un nom que je trouve beaucoup plus évocateur.
0 votes
Vous pouvez adapter votre BogoSort pour utiliser un générateur aléatoire très lent (et encore mieux : erroné).
0 votes
O(foo) est défini comme la complexité temporelle la plus défavorable, et non comme une mesure de performance générique. La complexité temporelle dans le meilleur des cas est (foo). Il n'existe pas de notation pour la complexité temporelle moyenne, bien que (foo) s'en approche. Ce n'est pas vraiment important pour la question, cependant.
0 votes
@Debilski : Cela le rendra plus lent d'un facteur constant, ce qui est ignoré dans la notation big-O. Pour une notation Je ne pense pas que vous trouverez grand chose.
6 votes
@Matteo Italia - ou on pourrait l'appeler "le tri des tout-petits" comme toute personne ayant un enfant de 2 ans peut en témoigner.
0 votes
UserSort : permet à l'utilisateur de trier le tableau manuellement.
0 votes
En 2013, nous avons xkcd.com/1185
0 votes
En 2019, le worstsort est un algorithme de tri dont la fin est finie mais qui peut être rendu aussi inefficace que nécessaire en choisissant des fonctions qui croissent rapidement sur des nombres d'entrée donnés. fr.wikipedia.org/wiki/Bogosort#Related_algorithms