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
Prueba este ejercicio y completa el 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