Il existe une sorte de bogobogosort. Tout d'abord, il vérifie les 2 premiers éléments et les trie. Ensuite, il vérifie les 3 premiers, les bogosorte, et ainsi de suite.
Si la liste est dans le désordre à tout moment, elle redémarre en triant à nouveau les 2 premiers. Bogosort régulier a une complexité moyenne de O(N!)
, cet algorithme a une complexité moyenne deO(N!1!2!3!...N!)
Edit : Pour vous donner une idée de la taille de ce nombre, pour les 20
éléments, cet algorithme prend en moyenne des 3.930093*10^158
années , bien au-dessus de la mort thermique proposée de l'univers (si cela se produit) d' 10^100
années ,
alors que le tri par fusion prend environ .0000004
quelques secondes , le tri par bulles en .0000016
secondes et bogosort prend des 308
années , des 139
jours , des 19
heures , des 35
minutes , des 22.306
secondes , en supposant qu'une année équivaut à 365,242 jours et qu'un ordinateur effectue 250 000 000 d'opérations entières 32 bits par seconde.
Edit2 : Cet algorithme n'est pas aussi lent que le tri miracle "algorithme", qui probablement, comme ce type, fera aspirer l'ordinateur dans le trou noir avant de réussir à trier 20 éléments, mais si c'était le cas, j'estimerais une complexité moyenne d' 2^(32(the number of bits in a 32 bit integer)*N)(the number of elements)*(a number <=10^40)
années ,
puisque la gravité accélère le déplacement des puces alpha, et il y a 2 ^ N états, ce qui est 2^640*10^40
, ou environ des 5.783*10^216.762162762
années , bien que si la liste commençait triée, sa complexité serait seulement O(N)
, plus rapide que le tri par fusion, qui n'est que N log N même dans le pire des cas.
Edit3 : Cet algorithme est en fait plus lent que le tri miracle car la taille devient très grande, disons 1000, puisque mon algorithme aurait une durée d'exécution de plusieurs 2.83*10^1175546
années , tandis que l'algorithme de tri miracle aurait une durée d'exécution de plusieurs 1.156*10^9657
années .