Fundaciones matemáticas de clasificación: Conducir Comparaciones esperadas y Swaps en Quicksort
Quicksort es un algoritmo de clasificación ampliamente utilizado conocido por su eficiencia. Comprender su rendimiento implica analizar el número esperado de comparaciones y swaps durante la ejecución. Este artículo explora los principios matemáticos detrás de estas expectativas, centrándose en el análisis probabilístico de Quicksort.
Número de comparaciones esperadas
El número esperado de comparaciones en Quicksort depende de la elección del pivote y del proceso de partición. Asumiendo que todas las permutaciones son igualmente probables, el caso promedio se puede analizar utilizando ecuaciones recursivas. Para una variedad de tamaño n], las comparaciones esperadas, denotadas como C(n)], satisfacen
C(n) = n - 1 + frac{1}{n} sum {k=0}^{n-1} [C(k) + C(n - 1 - k)]
Esta recurrencia simplifica un resultado bien conocido: C(n) ♥ 2n ln n] para grandes n. La derivación implica sumar todas las posiciones de pivote posibles y aplicar propiedades de números armónicos.
Número de súbitos previstos
Los swaps en Quicksort se producen durante el proceso de partición. El número esperado de swaps está relacionado con el número de comparaciones y la distribución de opciones de pivote. Bajo el azar uniforme, los swaps esperados, denotados como S(n)], se pueden aproximar analizando los pasos de partición.
Cada paso de partición implica el intercambio de elementos para asegurar la correcta colocación del pivote. Los swaps esperados por partición son proporcionales al tamaño de los subarrays. Resumiendo sobre todas las llamadas recursivas produce una aproximación: S(n) ♥ n n].
Resumen de las expectativas
- Comparaciones:] Aproximadamente 2n lnn para grandes n.
- Swaps:] Aproximadamente n lnn para grande n.
- Ambas métricas crecen logarítmicamente con el tamaño de la matriz, reflejando la eficiencia de Quicksort.