bubblesort.gif

Algoritmo de ordenamiento sencillo pero lento en conjunto de datos grandes.

Funciona comparando pares de elementos adyacentes y intercambiándolos si están en el orden incorrecto.

El proceso se repite varias veces hasta que ya no se necesiten más intercambios, lo que indica que el conjunto de datos está ordenado.

Aquí te explico los pasos básicos del Bubble Sort:

  1. Comparación y Intercambio: Comienza comparando el primer elemento con el siguiente. Si el primer elemento es mayor que el segundo, los intercambia. Luego pasa al siguiente par de elementos adyacentes y repite el proceso a lo largo del arreglo.
  2. Recorrido: Este proceso se repite varias veces a lo largo del arreglo, comparando y moviendo los elementos hacia su posición final.
  3. Optimización: Si durante un recorrido completo no se realiza ningún intercambio, significa que el arreglo está ordenado y el algoritmo puede detenerse prematuramente.
  4. Complejidad: El Bubble Sort tiene una complejidad de tiempo de O(n^2) en el peor caso, donde n es el número de elementos en el arreglo. Esto lo hace menos eficiente que algoritmos como Quick Sort o Merge Sort para conjuntos de datos grandes.

En resumen, aunque es fácil de entender e implementar, el Bubble Sort no es la opción más eficiente para grandes conjuntos de datos debido a su alto tiempo de ejecución en comparación con otros algoritmos de ordenamiento más avanzados.

function bubbleSort(arr) {
    let n = arr.length;
    // Itera a través de todos los elementos del arreglo
    for (let i = 0; i < n - 1; i++) {
        // Últimos i elementos ya están en su lugar correcto
        for (let j = 0; j < n - i - 1; j++) {
            // Compara elementos adyacentes
            if (arr[j] > arr[j + 1]) {
                // Intercambia arr[j] y arr[j+1]
                let temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

// Ejemplo de uso:
let arr = [64, 34, 25, 12, 22, 11, 90];

console.log("Arreglo original: " + arr); 
// 'Arreglo original: 64,34,25,12,22,11,90'

bubbleSort(arr);
console.log("Arreglo ordenado: " + arr);
//'Arreglo ordenado: 11,12,22,25,34,64,90'

1_9AAzjRHOxG4RunA3chb5_w.gif