Antes de escribir Bubble, Insertion o Selection Sort necesitamos definir una base común en Python: cómo representaremos listas, qué funciones auxiliares reusaremos y de qué manera organizar el proyecto para ejecutar rápido.
Una lista en Python puede contener enteros y crecer o reducirse sin reservar memoria manualmente. Para esta serie usaremos enteros:
datos = [5, 2, 9, 1, 3]
cantidad = len(datos)
El tamaño lógico (cantidad) es clave: los algoritmos necesitan saber hasta dónde iterar, aunque la lista se modifique en el proceso.
En Python las listas se pasan por referencia a la función. Podemos recibir la lista y su longitud para mantener consistencia con el pseudocódigo:
def bubble_sort(valores, n):
# Implementación del algoritmo
pass
# Llamado
bubble_sort(datos, cantidad)
En las próximas lecciones veremos implementaciones completas usando este esquema.
Intercambiar dos posiciones es una operación repetitiva en los tres algoritmos. Centralizarla mantiene el código claro:
def swap(valores, i, j):
valores[i], valores[j] = valores[j], valores[i]
Este helper evita errores y deja el algoritmo más legible.
Ver el antes y el después de cada ordenamiento nos ayuda a validar la lógica. Una función ligera de impresión:
def imprimir_lista(valores):
for valor in valores:
print(valor, end=", ")
Esta rutina no modifica los datos y sirve para todos los algoritmos del tutorial.
En este tutorial iremos colocando cada algoritmo dentro de un solo archivo, con los datos de prueba y la impresión del resultado en el mismo script. Así evitamos saltos entre módulos y mantenemos el foco en comprender la lógica del ordenamiento.