Fundamentos matemáticos de ordenação: Derivando Comparações e Trocas Esperadas em Quicksort
O Quicksort é um algoritmo de classificação amplamente utilizado conhecido por sua eficiência. Compreender seu desempenho envolve analisar o número esperado de comparações e swaps durante a execução. Este artigo explora os princípios matemáticos por trás dessas expectativas, com foco na análise probabilística do Quicksort.
Número esperado de comparações
O número esperado de comparações no Quicksort depende da escolha do pivô e do processo de particionamento. Assumindo que todas as permutações são igualmente prováveis, o caso médio pode ser analisado usando equações recursivas. Para uma matriz de tamanho n, as comparações esperadas, denotadas como C(n)[, satisfazem a recorrência:
C(n) = n - 1 + frac{1}{n} soma {k=0}^{n-1} [C(k) + C(n - 1 - k)]
Esta recorrência simplifica para um resultado conhecido: C(n) □ 2n ln n para grande n. A derivação envolve somar todas as posições possíveis e aplicar propriedades de números harmônicos.
Número esperado de trocas
As trocas no Quicksort ocorrem durante o processo de particionamento. O número esperado de swaps está relacionado com o número de comparações e a distribuição das escolhas de pivô. Sob a aleatoriedade uniforme, as swaps esperadas, denotadas como S(n), podem ser aproximadas analisando as etapas de particionamento.
Cada etapa de partição envolve a troca de elementos para garantir a colocação correta do pivô. As trocas esperadas por partição são proporcionais ao tamanho das subarrays. A soma de todas as chamadas recursivas produz uma aproximação: S(n) □ n ln n].
Resumo das Expectativas
- Comparações: Aproximadamente 2n N para grandes n.
- Vansas: Aproximadamente n ln n para grandes n.
- Ambas as métricas crescem logaritmicamente com o tamanho do array, refletindo a eficiência do Quicksort.