Instruções

Algoritmos de ordenação/Bogosort

Faça a ordenação Bogosort de uma lista de números. O Bogosort simplesmente embaralha uma coleção aleatoriamente até que ela fica ordenada. O "Bogosort" é um algoritmo perversamente ineficaz, que só é usado como uma piada interna. Seu tempo médio de execução é O(n!) porque a chance de qualquer embaralhamento de um conjunto terminar em ordem classificada é cerca de uma em *n* fatorial, e o pior caso é infinito já que não há garantia de que um embaralhamento aleatório produzirá alguma vez uma sequência ordenada. O melhor caso é O(n), uma vez que um único passo através dos elementos pode bastar para ordená-los. Pseudocódigo: <pre><b>while not</b> InOrder(list) <b>do</b> Shuffle(list) <b>done</b> </pre>

O que fazer:

Testes:

  • `bogosort` deve ser uma função.
  • `bogosort([25, 32, 12, 7, 20])` deve retornar um array.
  • `bogosort([25, 32, 12, 7, 20])` deve retornar `[7, 12, 20, 25, 32]`.
  • `bogosort([38, 45, 35, 8, 13])` deve retornar `[8, 13, 35, 38, 45]`.
  • `bogosort([43, 36, 20, 34, 24])` deve retornar `[20, 24, 34, 36, 43]`.
  • `bogosort([12, 33, 26, 18, 1, 16, 38])` deve retornar `[1, 12, 16, 18, 26, 33, 38]`.
  • `bogosort([3, 39, 48, 16, 1, 4, 29])` deve retornar `[1, 3, 4, 16, 29, 39, 48]`.

Console