Professional Documents
Culture Documents
16 72 23 9 1 56 12 99
1 56 23 9 16 72 12 99
1 56 12 9 16 72 23 99
1 56 12 9 16 72 23 99
Siguiendo el algoritmo se dividen a la mitad las listas resultantes siendo
n/2 = 8/2= 4
4/2 = 2 (saltos de 2)
1 56 12 9 16 72 23 99
1 56 12 9 16 72 23 99
1 9 12 56 16 72 23 99
1 9 12 56 16 72 23 99
1 9 12 56 16 72 23 99
1 9 12 56 16 72 23 99
1 9 12 56 16 72 23 99
1 9 12 56 16 72 23 99
1 9 12 16 56 72 23 99
1 9 12 16 56 23 72 99
4 3 1 5 2 6 8
i j
4 3 1 5 2 6 8
i j
I apunta a un número igual al pivote por lo tanto se queda fijo
J se mueve hacia la izquierda hasta encontrar un número menor al pivote
4 3 1 5 2 6 8
i j
Se realiza el intercambio y 2 pasa a ser el primer elemento de la lista
2 3 1 5 4 6 8
i j
I apunta a un número menor al pivote por lo que se mueve a la siguiente casilla
2 3 1 5 4 6 8
i j
i apunta a un número menor al pivote por lo que se mueve a la siguiente casilla
2 3 1 5 4 6 8
i
j apunta a un número mayor al pivote por lo tanto se mueve hacia la izquierda
2 3 1 5 4 6 8
j i
Cuando se cruzan los índices ya no se realiza intercambio y se termina la
primer pasada
pivote
2 3 1 4 5 6 8
Elementos menores al pivote Elementos mayores o iguales al
pivote
Se repite el algoritmo con cada una de las Se repite el algoritmo con cada una de las sublistas
Se elije el primero como pivote = 5
sublistas
Se elije el primero como pivote = 2 5 6 8
2 3 1
i j
i j 5 es igual a pivote se queda igual
j no es menor a pivote se queda igual
1 3 2 i j
i 5 6
I ++
8
j j I J–
Como están cruzados se termina
la pasada
Se repite el algoritmo con cada una de las
sublistas
Se elije el primero como pivote = 3
1 3 2
i j
2 no es mayor a pivote se hace intercambio
1 2 3
i
j
1 2 3 4 5 6 8
L1 L2 L3
Tomamo
s pivote 8
9
9
Ejemplo 3
Se ordena una lista de números enteros aplicando el algoritmo quicksort,
como pivote se elige el
elemento central de la lista.
Lista original: 8 1 4 9 6 3 5 2 7 0
Pivote (elemento central) 6
Y elaborarlo en Go