¿Cómo ordenamos una lista de números?
Imagina que los números más grandes son "más pesados" y se hunden al final de la lista, mientras que los más pequeños son "burbujas" que suben hacia el principio.
Ejemplo: ¿5 > 1?
¡SÍ! Intercambiamos.
public static void burbuja(int[] array) {
int aux;
// Bucle externo: Número de pasadas
for (int i = 0; i < array.length - 1; i++) {
// Bucle interno: Comparaciones
// ¡Ojo! Restamos 'i' para no revisar lo ya ordenado
for (int j = 0; j < array.length - 1 - i; j++) {
// Si el actual es mayor que el siguiente...
if (array[j] > array[j + 1]) {
// ...intercambiamos (SWAP)
aux = array[j];
array[j] = array[j + 1];
array[j + 1] = aux;
}
}
}
}
Controla cuántas pasadas hacemos. Necesitamos N-1 pasadas para ordenar N elementos.
Recorre la lista comparando parejas. Nota el - i: ¡No necesitamos revisar los últimos elementos porque ya están ordenados!
Usamos una variable temporal aux para no perder el valor al hacer el cambio.
Sigue los pasos hasta que la lista esté totalmente ordenada.