Buenas tardes,
Tengo una duda sobre el escenario del peor caso del algoritmo quicksort, basado en el número de comparaciones realizadas por el algoritmo, para un número dado de elementos. Esto es parte de la auto-estudio.
Por quicksort, me estoy refiriendo a un algoritmo que comienza por tomar el primer elemento de la lista inicial (el pivote; vamos a llamar a $a_1$) y los formularios de dos sublistas, la primera que contiene los elementos que están a menos de $a_1$, en el orden en que surgen, y la segunda contiene los elementos mayor que $a_1$, en el orden en que surgen. A continuación, pone a $a_1$ al final de la primera lista. Este procedimiento se repite sucesivamente de forma recursiva para cada sublista, hasta que cada sublista contiene un elemento.
Mi pregunta es: Cada una de las fuentes acerca de este tema parece estar de acuerdo en que el peor escenario es cuando la lista se ordenan ya está ordenada y el pivote es el elemento más pequeño en la lista. En este caso, el número total de comparaciones es $n(n - 1)/2$ donde $n$ es el número de elementos en la lista (por ejemplo, ver aquí: http://www.daniweb.com/software-development/cpp/threads/171145).
Pero a mí me parece que el peor caso ocurre cuando la lista está ordenada en orden decreciente y el pivote es el primer elemento en la lista, que, en este caso, sería el mayor elemento en la lista.
Por ejemplo, considere la lista de $\{4, 3, 2, 1\}$. Yo elegí el pivote como el primer elemento. Cada paso de la quicksort dividirá la lista original de la siguiente manera, de acuerdo a la descripción que me dio anteriormente:
En el primer paso, $\{4, 3, 2, 1\}$ se divide en dos listas: $\{3, 2, 1, 4\}$ (elementos menores que el pivote más el pivote anexa al final) y $\{\}$ (elementos mayores que el pivote: lista vacía). El primer paso requiere de 3 comparaciones para encontrar que 3, 2, 1 son menores que 4.
Del mismo modo, en el segundo paso, la lista de $\{3, 2, 1, 4\}$ se divide en $\{2, 1, 3\}$$\{4\}$, requiriendo 3 comparaciones (para saber que 2, 1 son más pequeños, de 3 y 4 es mayor que 3). El tercer paso se divide $\{2, 1, 3\}$ a $\{1, 2\}$$\{3\}$, requiriendo 2 comparaciones. El último paso se divide $\{1, 2\}$ a $\{1\}$$\{2\}$, requiriendo 1 comparación.
Si me suma el número de comparaciones para cada paso, me parece $3 + 3 + 2 + 1 = 9$. De hecho, si yo generalizar la situación anterior a $n$ elementos ordenados en orden decreciente, con el primer elemento como pivote, llego $n(n - 1)/2 + n - 1$ comparaciones.
Si la lista está ordenada en orden creciente $\{1, 2, 3, 4\}$ y yo elegimos el pivote a ser el elemento más pequeño de la lista (en este caso, el primer elemento), el número de comparaciones serían $n(n - 1)/2 = 4(3)/2 = 6$.
9 comparaciones es mayor que 6 comparaciones. ¿Por qué no es el peor de los casos?
Gracias de antemano.