* Mejor caso: O (n log n)
* Esto ocurre cuando el pivote elegido en cada paso divide la matriz en mitades aproximadamente iguales. Esto conduce a un árbol de recursión equilibrado.
* Caso promedio: O (n log n)
* En promedio, Quicksort funciona muy bien. La selección de pivote no tiene que ser perfecto para lograr un rendimiento casi óptimo.
* peor de los casos: O (n^2)
* Esto sucede cuando el pivote es consistentemente el elemento más pequeño o más grande de la matriz. Esto conduce a un árbol de recursión altamente desequilibrado donde un subproblema tiene tamaño 0 y el otro tiene tamaño N-1. En esencia, se degrada a rendimiento similar al orden de selección o al tipo de burbujas. Un escenario común es cuando la matriz de entrada ya está ordenada o casi clasificada.
Notas importantes
* Quicksort aleatorizado: Una variación de aceleración que selecciona aleatoriamente el pivote reduce significativamente la probabilidad de encontrar el peor de los casos. Quicksort aleatorizado tiene una complejidad de tiempo promedio y esperada de O (N log n).
* clasificación en el lugar: Quicksort es un algoritmo de clasificación en el lugar (requiere una memoria adicional mínima, generalmente o (log n) para la pila de recursiones).
* Rendimiento práctico: A pesar de la posibilidad de una O (N^2) en el peor de los casos, Quicksort a menudo es muy eficiente en la práctica y se usa con frecuencia en las funciones de clasificación de la biblioteca estándar. Sus ventajas incluyen su naturaleza en el lugar y sus factores constantes relativamente pequeños.
* Comparación para fusionar el sort: Merge Sort tiene una complejidad de tiempo garantizada o (n log n) en todos los casos, pero no está en el lugar (requiere el espacio auxiliar O (n)). Por lo tanto, la rápida a menudo se prefiere cuando el espacio es una preocupación importante y se espera que los datos estén razonablemente bien distribuidos.
En resumen:
| Caso | Complejidad del tiempo |
| ------------- | ----------------- |
| Mejor | O (n log n) |
| Promedio | O (n log n) |
| Peor | O (n^2) |