|
| 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) |