Existe um tipo chamado bogobogosort. Primeiro, ele verifica os 2 primeiros elementos e os classifica de bogo. Em seguida, ele verifica os 3 primeiros, classifica-os e assim por diante.
Se a lista estiver fora de ordem a qualquer momento, ela será reiniciada novamente, classificando os 2 primeiros. O bogosort regular tem uma complexidade média de O(N!)
, esse algoritmo tem uma complexidade média deO(N!1!2!3!...N!)
Editar : para ter uma idéia de quão grande esse número é, para 20
elementos, esse algoritmo leva uma média de 3.930093*10^158
anos , bem acima da morte por calor proposta pelo universo (se isso acontecer) de 10^100
anos ,
enquanto a classificação de mesclagem leva cerca de .0000004
segundos , a classificação de bolha .0000016
segundos e o bogosort leva 308
anos , 139
dias , 19
horas , 35
minutos , 22.306
segundos , assumindo que um ano seja 365.242 dias e um computador faz 250.000.000 de operações inteiras de 32 bits por segundo.
Edit2 : Esse algoritmo não é tão lento quanto o tipo de milagre "algoritmo", que provavelmente, como esse, fará com que o computador seja sugado pelo buraco negro antes de classificar com êxito 20 elemtnts, mas, se o fizesse, eu estimaria uma complexidade média de 2^(32(the number of bits in a 32 bit integer)*N)(the number of elements)*(a number <=10^40)
anos ,
uma vez que a gravidade acelera o movimento alfa dos chips, e existem 2 ^ N estados, que são 2^640*10^40
, ou cerca de 5.783*10^216.762162762
anos , embora se a lista começasse a ser classificada, sua complexidade seria apenas O(N)
mais rápida que a classificação por mesclagem, que é apenas N log N no pior dos casos.
Edit3 : Esse algoritmo é realmente mais lento que a classificação milagrosa, pois o tamanho fica muito grande, digamos 1000, já que meu algoritmo teria um tempo de execução de 2.83*10^1175546
anos , enquanto o algoritmo de classificação milagrosa teria um tempo de execução de 1.156*10^9657
anos .