Está en la página 1de 8

Método de ordenamiento QuickSort C++

Este tipo de algoritmo se basa en la técnica “divide y vencerás” es conocido como método rápido de
ordenamiento por particiones.

Se basa en dividir los datos de la lista a ordenar en particiones separadas por un elemento.

Una partición izquierda Pivote/elemento Una participación derecha

En la participación izquierda todos son menores que la participación derecha y las dos listas se ordenan
independientemente.
Se puede seleccionar cualquier elemento de la lista como: Pivote.
Ejemplo

Seleccionamos nuestro
pivote (7)

El paso 2 requiere mover todos los elementos menores a la parte izquierda y los elementos
mayores a la parte derecha.
Para esto se recorre la lista de izquierda a derecha.

Buscando el elemento
Mayor que el pivote.
Ejemplo

También se recorre la lista de


derecha a izquierda
Buscando un elemento menor

Se hace la comparación

Verdadero, entonces se
> (Mayor) y <(Menor) cambia de posición.
Ejemplo

i i Pivote j j
Ahora se incrementa el recorrido de izquierda a derecha y de derecha a izquierda.
Se vuelve a comparar

> (Mayor) y <(Menor)

Falso, entonces no se cambia de posición.


Ejemplo

i Pivote i j j
Se vuelve hacer el recorrido, y ahora notamos que “i” está en la posición del pivote y “j” en la posición
del 9.

Los índices actualmente tienen los valores índice “i” igual a la posición 3 y el índice “j” igual a la posición 3.

Y continúa su exploración hasta que “i” sea mayor que 3, en esta posición los índices “i” y “j” se han
intercambiado.

j i
Ejemplo

j i
La lista de izquierda a derecha ya se encuentra ordenada pero la de derecha izquierda aún
no.
Para esto se realiza el mismo proceso, solamente en la lista que aún no
esta ordenada.

Se escoge un pivote, en este caso 8.

i j
Pivote
Ejemplo

i Pivote j
Se hace la comparación.

> (Mayor) y <(Menor)

Entonces se organiza correctamente la lista


C++

También podría gustarte