|
| 1 | +# Quicksort |
| 2 | + |
| 3 | +Quicksort é um algoritmo de dividir para conquistar é um algoritmo de divisão e conquista. |
| 4 | +Quicksort primeiro divide uma grande matriz em duas menores |
| 5 | +submatrizes: os elementos baixos e os elementos altos. |
| 6 | +O Quicksort pode então classificar recursivamente as submatrizes |
| 7 | + |
| 8 | +As etapas são: |
| 9 | + |
| 10 | +1. Escolha um elemento, denominado pivô, na matriz. |
| 11 | +2. Particionamento: reordene a matriz para que todos os elementos com |
| 12 | +valores menores que o pivô vêm antes do pivô, enquanto todos |
| 13 | +elementos com valores maiores do que o pivô vêm depois dele |
| 14 | +(valores iguais podem ser usados em qualquer direção). Após este particionamento, |
| 15 | +o pivô está em sua posição final. Isso é chamado de |
| 16 | +operação de partição. |
| 17 | +3. Aplique recursivamente as etapas acima à submatriz de |
| 18 | +elementos com valores menores e separadamente para o |
| 19 | +submatriz de elementos com valores maiores. |
| 20 | + |
| 21 | +Visualização animada do algoritmo quicksort. |
| 22 | +As linhas horizontais são valores dinâmicos. |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +## Complexidade |
| 27 | + |
| 28 | +| Nome | Melhor | Média | Pior | Memória | Estável | Comentários | |
| 29 | +| --------------------- | :-------------: | :-----------------: | :-----------------: | :-------: | :-------: | :-------- | |
| 30 | +| **Quick sort** | n log(n) | n log(n) | n<sup>2</sup> | log(n) | No | Quicksort geralmente é feito no local com espaço de pilha O(log(n)) | |
| 31 | + |
| 32 | +## Referências |
| 33 | + |
| 34 | +- [Wikipedia](https://pt.wikipedia.org/wiki/Quicksort) |
| 35 | +- [YouTube](https://www.youtube.com/watch?v=SLauY6PpjW4&index=28&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8) |
0 commit comments