Ordenamiento por mezcla en Python
Merge sort divide recursivamente y combina sublistas ordenadas.
¿Qué es Ordenamiento por mezcla en Python?
Merge sort divide recursivamente y combina sublistas ordenadas.
Ordena mediante divide y vencerás.
¿Cuándo se utiliza?
- Comprender algoritmos y estructuras de datos.
- Observar cada paso y tratar casos límite.
- Comparar tiempo de ejecución y memoria.
Visualizador de Ordenamiento por mezcla en Python
O(n log n)Usa Reproducir o Paso para seguir cada comparación y movimiento de datos.
Código de ejemplo
main.py
def merge_sort(values):
if len(values) <= 1:
return values
middle = len(values) // 2
left = merge_sort(values[:middle])
right = merge_sort(values[middle:])
result = []
left_index = right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index] <= right[right_index]:
result.append(left[left_index])
left_index += 1
else:
result.append(right[right_index])
right_index += 1
return result + left[left_index:] + right[right_index:]
print(merge_sort([38, 27, 43, 3, 9, 82, 10]))
Resultado esperado
[3, 9, 10, 27, 38, 43, 82]
Cómo funciona
Garantiza tiempo O(n log n) y utiliza O(n) de memoria adicional.
Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.
Ejercicios prácticos
Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.
- Prueba una entrada vacía, un elemento y duplicados.
- Muestra el estado después de cada paso.
- Compara el rendimiento con otra solución.