Instruções

Implementar o Algoritmo Quicksort

Neste laboratório você implementará o algoritmo de ordenação: quicksort. Quicksort é uma abordagem eficiente, recursiva e de dividir para conquistar para ordenar um array. Neste método, um valor pivô é escolhido no array original. O array é então particionado em dois subarrays de valores menores e maiores que o valor pivô. Em seguida, o resultado da chamada recursiva do algoritmo quicksort em ambos os subarrays é combinado. Isso continua até que o caso base de um array vazio ou com um único item seja alcançado, que é retornado. O desenrolar das chamadas recursivas devolve o array ordenado. Embora a escolha do valor pivô seja importante, qualquer pivô servirá para os nossos propósitos aqui. Para simplificar, podemos usar o primeiro ou o último elemento. Quicksort is a very efficient sorting method, providing *O(nlog(n))* performance on average. Ele também é relativamente fácil de implementar. Estes atributos fazem dele um método de ordenação popular e útil. Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório. Histórias de Usuário: 1. Você deve ter uma função quicksort que recebe um array de inteiros como entrada. 1. A função quicksort deve retornar um array que contenha os mesmos inteiros da entrada, mas em ordem do menor para o maior. 1. A função quicksort deve chamar a si mesma recursivamente para ordenar o array.

O que fazer:

Testes:

  • Você deve ter uma função `quicksort`.
  • `quicksort([1, 4, 2, 8, 345, 123, 43, 32, 5643, 63, 123, 43, 2, 55, 1, 234, 92])` deve retornar um array que não foi alterado exceto pela ordem.
  • `quicksort` deve retornar um array ordenado (do menor para o maior).
  • `quicksort` não deve usar o método `.sort()` embutido.

Preview