Resumen

El ordenamiento por burbuja es un método de ordenación sencillo y fácil de comprender. Funciona comparando pares de elementos adyacentes y, si están en el orden equivocado, intercambiándolos. Repite este proceso hasta que la lista queda ordenada. Por su simplicidad se usa con frecuencia para presentar conceptos básicos de ordenación y estructuras de datos; para más información técnica sobre técnicas de ordenación consulte algoritmos de ordenación.

Cómo funciona

En cada pasada por la lista, el algoritmo recorre los elementos desde el principio hasta el final (o viceversa), comparando cada par contiguo. Si un par está desordenado, se realiza un intercambio (swap). Tras una pasada completa, el elemento más grande de los no ordenados queda colocado en su posición final, como si burbujease hasta la superficie. El proceso se repite reduciendo el área a examinar hasta que no hay intercambios.

Propiedades y complejidad

  • Estabilidad: El algoritmo es estable: preserva el orden relativo de elementos iguales.
  • Almacenamiento: Es in-place: sólo necesita memoria constante adicional.
  • Complejidad temporal: En el peor y caso promedio suele ser cuadrática (O(n^2)), por lo que es lento para grandes n.
  • Adaptativo: En su forma básica no es muy adaptativo, pero variantes con detección de orden pueden terminar antes si la lista está casi ordenada.

Variantes y mejoras

Existen modificaciones que mejoran el comportamiento práctico sin cambiar la complejidad asintótica: una comprobación de intercambios para detenerse si la lista queda ordenada, y la versión bidireccional conocida como "cocktail shaker" o ordenamiento por sacudida, que recorre la lista en ambos sentidos en cada iteración. Estas variantes reducen el número de pasadas en casos parcialmente ordenados.

Historia y uso

El nombre evoca el movimiento de las burbujas en un líquido: los elementos «suben» hasta su posición final. Aunque no es la opción más eficiente para aplicaciones de producción con conjuntos extensos, su implementación mínima y claridad conceptual lo han convertido en un recurso didáctico clásico en cursos de programación y en ejemplos de análisis de algoritmos. También se emplea ocasionalmente en sistemas con restricciones extremas de memoria y listas muy cortas.

Comparaciones y notas finales

Frente a algoritmos más complejos como quicksort o mergesort, el ordenamiento por burbuja ofrece desventajas en rendimiento pero ventajas en simplicidad y previsibilidad. Para entender las ideas de comparación, intercambio, estabilidad y optimización temprana resulta muy útil. La metáfora visual de que cada elemento "burbujea" hasta su lugar ayuda a asimilar su comportamiento; ver una animación puede aclararlo aún más (ver ilustración).