Professional Documents
Culture Documents
RAPIDO (QUICKSORT)
DIVIDE Y
VENCERAS
UN POCO DE HISTORIA
QUICKSORT
"divide y vencers"
El
problem
a
Lo
En
problem
as
De
menor
subdivi
de
Tamao
ALGORITMO RPIDO
Es el algoritmo de ordenacin
ms rpido conocido, su
tiempo de ejecucin
promedio es O(n log (n)).
Se elige un
elementovde la
lista L de
elementos al que
se le
llamapivote.
FUNCIONAMIENTO
Se unen todas
las soluciones
que darn forma
final a la lista L
finalmente
ordenada.
Se aplica la
recursin sobre
L1y L3
L3- que contiene
todos los
elementos de L
menosvque
sean mayores o
iguales quev
Se parte la lista
L en tres
sublistas
L1- que
contiene todos
los elementos
de L
menosvque
sean menores o
iguales quev
L2- que contiene
av
Esta es la
ELIGIENDO
EL PIVOTE
La eleccin
partems
del pivote
determina las
particiones
de la lista de
datos
Al
seleccionar el
pivotevlas
particiones
debern
tener un
tamaoidn
tico.
crticade la
implementaci
n del
algoritmo
QuickSort
La velocidad
de ejecucin
del algoritmo
depende en
gran medida
de como se
implementa
este
mecanismo
A TRES BANDAS???
En esta estrategia lo que se persigue es hacer una media
con los valores de tres de los elementos de la lista.
Por ejemplo si nuestra lista es [ 8, 4, 9, 3, 5, 7, 1, 6, 2 ] , entonces se eligen los
valores como:
[ 8, 4, 9, 3, 5, 7, 1, 6, 2 ]
la media sera ( 8 + 2 + 5 ) / 3 = 5 lo que dara lugar a las siguientes particiones:
L1= [ 8, 9, 7, 6 ]
L2= [ 5 ]
L3= [ 1, 2, 4, 3 ]
Esta estrategiano nos asegura que siempre nos dar la mejor seleccin
del pivote, sino que estadsticamente, la eleccin del pivote sea buena.
IMPLEMENTACIN DE
QUICKSORT
El objetivo de la implementacin
es la de crear un algoritmo de
ordenacin eficiente y rpido.
Por lo que las listas "auxiliares"
que creamos al particionar no son
listas reales, es decir, no creamos
nuevos elementos de lista para
albergar los elementos, sino que
situamos el pivote en una
posicin determinada dentro de la
lista para simular las particiones.