Si tiene un algoritmo de clasificación rápida y siempre selecciona el elemento más pequeño (o más grande) como pivote; ¿estoy en lo cierto al suponer que si proporciona un conjunto de datos ya ordenados, siempre obtendrá el peor rendimiento independientemente de si su lista 'ya ordenada' está en orden ascendente o descendente?
Mi opinión es que, si siempre elige el elemento más pequeño para su pivote, entonces si su entrada 'ya ordenada' está ordenada en forma ascendente o descendente no importa porque el subconjunto elegido para ser ordenado en relación con su pivote siempre será el ¿mismo tamaño?
Respuestas:
La peor complejidad de caso para quicksort es . Esto se logra seleccionando pivotes que dividen el conjunto de modo que un grupo tenga un solo miembro. Con un algoritmo de selección de pivote incorrecto, esto se puede lograr fácilmente eligiendo un extremo de un conjunto ordenado. Tu suposición es correcta.Θ(n2)
fuente
¡Si! ¡Estás pensando que tiene toda la razón! Y como lo mencionó correctamente Yuval Filmus, el tiempo de ejecución seráΘ(n2)
fuente
Una submatriz tendrá o elemento, mientras que la otra tendrá elementos ; por lo tanto, es :0 1 (n−1) O(n2)
fuente