La idea en una frase
Compara vecinos; intercambia si el de la izquierda es mayor; repite hasta que una pasada completa no requiera ningún intercambio.
Tras la primera pasada, el valor más grande queda garantizado al final. Tras la segunda, el segundo más grande queda en su lugar. Cada pasada bloquea una posición definitiva más.
REPETIR n veces:
PARA cada pareja de vecinos (izq, der):
SI izq > der ENTONCES
INTERCAMBIAR izq y derdef bubble_sort(values):
n = len(values)
for i in range(n):
for j in range(n - 1 - i):
if values[j] > values[j + 1]:
values[j], values[j + 1] = values[j + 1], values[j]
return values
print(bubble_sort([5, 1, 4, 2, 8]))Output
[1, 2, 4, 5, 8]
Análisis: ¿por qué es 'lento'?
Para n elementos, el ordenamiento de burbuja realiza aproximadamente n²/2 comparaciones en el peor caso. Eso es O(n²).
Para 10 elementos son ~50 comparaciones: instantáneo. Para 1,000,000 de elementos son ~500 mil millones: minutos o horas de procesamiento. Las bibliotecas modernas de ordenamiento usan algoritmos O(n log n) — para ese mismo millón de elementos solo necesitan ~20 millones de operaciones. Esa diferencia es el núcleo del análisis de algoritmos.
Puntos clave
- Ordenamiento de burbuja = comparaciones reiteradas entre vecinos con intercambios.
- Cada pasada bloquea el siguiente elemento más grande en su lugar definitivo.
- Complejidad temporal: O(n²) comparaciones, O(1) memoria adicional.
- Excelente herramienta pedagógica; nunca se utiliza en sistemas de producción.