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.