Subido por Marcos Adrian Ferreira

Quicksort (1)

Anuncio
QUICKSORT
Algoritmo de Ordenación Recursivo
En que se basa
El algoritmo QuickSort se basa en la técnica de "divide y vencerás" por la que en cada
recursión, el problema se divide en subproblemas de menor tamaño y se resuelven por
separado (aplicando la misma técnica) para ser unidos de nuevo una vez resueltos.
Características del Algoritmo QuickSort
En la práctica, es el algoritmo de ordenación más rápido conocido, su tiempo de
ejecución promedio es O(n log (n)), siendo en el peor de los casos O(n2), caso altamente
improbable. El hecho de que sea más rápido que otros algoritmos de ordenación con
tiempo promedio de O(n log (n)) ( como SmoothSort o HeapSort ) viene dado por que
QuickSort realiza menos operaciones ya que el método utilizado es el de partición.
Complejidad Algorítmica Quicksort
Time Complexity
Best
O(n*log n)
Worst
O(n2)
Average
O(n*log n)
Space Complexity
O(log n)
Stability
No
1. Seleccionar el Pívot
2. Reordenar el arreglo
¿Cómo se hace el Reordenamiento?
El pívot se compara con los elementos empezando
desde el primer índice.
Si el elemento comparado es mayor que el pívot, se
agrega un segundo puntero a ese elemento.
Se sigue comparando, si un elemento es menor al pívot, el elemento
menor es intercambiado con el elemento mayor al cual se le seteo el
segundo puntero.
El proceso es repetido, con el siguiente mayor elemento al pívot
encontrado para ser intercambiado por uno menor.
Se continúa este proceso hasta que el penúltimo
elemento es alcanzado.
Finalmente, el pívot es intercambiado por el segundo
puntero.
ALGORITMO COMPLETO
Se separan en dos sub-partes,
izquierda y derecha, y son elegidos
pívots para cada parte, y se repite el
paso 2.
Los sub-arreglos son divididos hasta que
cada sub-arreglo es formado por un solo
elemento, en este punto, el arreglo ya
está ordenado.
Código
Código
Descargar