You are on page 1of 12

ORDENANMIENTO

RAPIDO (QUICKSORT)

DIVIDE Y
VENCERAS

UN POCO DE HISTORIA

Desde que existe la


ciencia de la
computacin, uno
de los mayores
problemas con los
que los ingenieros
se encontraban en
su da a da, era el
de ordenar listas de
elementos.

Por causa de los


diversos algoritmos
de ordenacin
siempre existi
unintenso
debatepor cual
era el mas eficiente

Fue hasta 1960 que


SirCharles
Antony Richard
Hoare desarroll
el algoritmo de
ordenacin
QuickSort

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)).

El hecho de que sea el mas


rpido
es
porque
el
QuickSortrealiza
menos
operacionesya
que
el
mtodo utilizado es el
departicin

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

Elegir el primero o el ltimo

Con un buen generador de no. aleatorios


podemos elegir un pivote al azar pero tiene
como contrapartida que en algunas ocasiones
si puede arrojar un resultado deO(n2)
Una buena estrategia para solucionar la seleccin
del pivote es como"a tres bandas"

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.

You might also like