Question: ¿Cómo funciona el algoritmo de bubble sort?
Answer: Este algoritmo permite ordenar una lista de N números en tiempo O(N^2).
La idea es la siguiente: N veces, vamos a ir de izquierda a derecha en la lista, y cada vez que encontremos un número que es mayor que el de su derecha, los intercambiamos. De esta manera, eventualmente la lista queda ordenada pues no habrán más pares que intercambiar.
Para demostrar que este algoritmo es correcto, y que luego de N escaneos la lista queda ordenada, podemos darnos cuenta de que luego del primer escaneo, el mayor de todos los números queda en la última posición. Luego del segundo escaneo, el segundo mayor de todos los números queda en la penúltima posición, y así sucesivamente. Podemos demostrar de manera inductiva que luego de K escaneos, los K mayores números quedan en sus posiciones correctas. Cuando K=N, obtenemos que la lista queda ordenada.

Cabe notar que este algoritmo no es el más eficiente para ordenar.