InstruçÔes
Implementar o Algoritmo Quicksort
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 definir uma função chamada
quick_sort para implementar o algoritmo quicksort.
1. A função quick_sort deve receber uma lista de inteiros como entrada e retornar uma nova lista desses inteiros em ordem crescente, do menor para o maior.
1. Para implementar o algoritmo, vocĂȘ deve:
- Escolha um valor pivot dentre os elementos da lista de entrada (use o primeiro ou o Ășltimo elemento da lista).
- Particione a lista de entrada em trĂȘs sublistas: uma com elementos menores que o
pivot, uma com elementos iguais aopivote uma com elementos maiores que opivot. - Chame recursivamente
quick_sortpara ordenar as sublistas e concatene as sublistas ordenadas para produzir a lista final ordenada.
O que fazer:
Testes:
- VocĂȘ deve ter uma função chamada `quick_sort`.
- Sua função `quick_sort` deve receber um Ășnico parĂąmetro.
- `quick_sort([])` deve retornar uma lista vazia.
- Sua função `quick_sort` não deve modificar a lista passada para ela como argumento.
- `quick_sort([20, 3, 14, 1, 5])` deve retornar `[1, 3, 5, 14, 20]`.
- `quick_sort([83, 4, 24, 2])` deve retornar `[2, 4, 24, 83]`.
- `quick_sort([4, 42, 16, 23, 15, 8])` deve retornar `[4, 8, 15, 16, 23, 42]`.
- `quick_sort([87, 11, 23, 18, 18, 23, 11, 56, 87, 56])` deve retornar `[11, 11, 18, 18, 23, 23, 56, 56, 87, 87]`.
- VocĂȘ nĂŁo deve importar nenhum mĂłdulo ou usar mĂ©todos de ordenação embutidos no seu cĂłdigo.
Preview