Implementación del algoritmo de ordenamiento rápido
En este ejercicio, implementarás el algoritmo de ordenamiento rápido para ordenar una lista de números.
En el primer paso, implementarás la función partition()
, que devuelve el índice del pivote después de procesar la lista de números de forma que todos los elementos que están a la izquierda del pivote sean menores que el pivote y todos los elementos que están a la derecha del pivote sean mayores que el pivote.
En el segundo paso, implementarás la función quicksort()
, que llamará a la función partition()
.
Este ejercicio forma parte del curso
Estructuras de datos y algoritmos en Python
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
def partition(my_list, first_index, last_index):
pivot = my_list[first_index]
left_pointer = first_index + 1
right_pointer = last_index
while True:
# Iterate until the value pointed by left_pointer is greater than pivot or left_pointer is greater than last_index
while ____ < ____ and ____ < ____:
left_pointer += 1
while my_list[right_pointer] > pivot and right_pointer >= first_index:
right_pointer -= 1
if left_pointer >= right_pointer:
break
# Swap the values for the elements located at the left_pointer and right_pointer
my_list[left_pointer], my_list[right_pointer] = ____, ____
my_list[first_index], my_list[right_pointer] = my_list[right_pointer], my_list[first_index]
return right_pointer