Aqui está o colapso da complexidade do tempo do Quicksort em Big O notação:
*
Melhor caso: O (n log n)
* Isso ocorre quando o pivô escolhido em cada etapa divide a matriz em metades aproximadamente iguais. Isso leva a uma árvore de recursão equilibrada.
*
Caso médio: O (n log n)
* Em média, o QuickSort tem um desempenho muito bom. A seleção do pivô não precisa ser perfeita para alcançar o desempenho quase ideal.
*
Pior caso: O (n^2)
* Isso acontece quando o pivô é consistentemente o menor ou o maior elemento da matriz. Isso leva a uma árvore de recursão altamente desequilibrada, onde um subproblema tem tamanho 0 e o outro tem tamanho n-1. Em essência, ele se degrada ao desempenho semelhante ao tipo de seleção ou tipo de bolha. Um cenário comum é quando a matriz de entrada já está classificada ou quase classificada.
Notas importantes *
Quicksort randomizado: Uma variação do Quicksort que seleciona aleatoriamente o pivô reduz significativamente a probabilidade de encontrar o pior cenário. O Quicksort randomizado tem uma complexidade de tempo médio e esperada de O (n log n).
*
classificação no local: O Quicksort é um algoritmo de classificação no local (requer memória extra mínima, geralmente O (log n) para a pilha de recursão).
*
desempenho prático: Apesar da possibilidade de um pior caso O (n^2), o Quicksort geralmente é muito eficiente na prática e é freqüentemente usado em funções de classificação de bibliotecas padrão. Suas vantagens incluem sua natureza no local e fatores constantes relativamente pequenos.
*
Comparação com a fusão de classificação: A Merge Sort possui uma complexidade de tempo garantida O (n log n) em todos os casos, mas não é no local (requer espaço auxiliar O (n)). Portanto, o Quicksort é frequentemente preferido quando o espaço é uma grande preocupação e os dados devem ser razoavelmente bem distribuídos.
em resumo: | Caso | Complexidade do tempo |
| ---------------- | ----------------- |
| Melhor | O (n log n) |
| Média | O (n log n) |
| Pior | O (n^2) |