Clasificación de burbujas de clasificación de algoritmos de javascript


Dirección del evento: Desafío de aprendizaje de 21 días de CSDN

prefacio

Muchas personas han oído hablar del algoritmo de clasificación clásico, y muchas personas pueden haberlo usado, pero también hay muchas personas que nunca han oído hablar de él. ¿por qué? Ahora que tenemos más y más marcos y paquetes dependientes, podremos usar la escena real de clasificación y encapsularla en una función como un negocio.Por lo tanto, algunas personas solo conocen la función pero no su lógica operativa.

Con base en lo anterior, para comprender mejor la lógica de operación de la función, resolví algunas reglas de operación del método de clasificación básico, así como algunos conocimientos personales, con la esperanza de brindarle alguna ayuda.

Ordenamiento de burbuja

La clasificación de burbujas es uno de los algoritmos básicos de clasificación. Su idea central es comparar elementos adyacentes por pares, el número más grande se hunde y el número más pequeño aumenta. El número grande viene después, y el proceso es como una burbuja de pequeño a grande, así que se llama clasificación de burbuja.

Principio de clasificación por burbujas

  • El recorrido debe ordenarse y dos elementos adyacentes se comparan a su vez;
  • El orden es correcto: la posición del representante es correcta y no se requiere intercambio;
  • El orden es incorrecto: intercambie dos elementos para que el orden sea correcto;

Cada pase solo puede estar seguro de poner un número en el orden correcto. Es decir, la primera pasada solo puede determinar la devolución del último dígito, la segunda pasada solo puede devolver el penúltimo dígito, y así sucesivamente. Si hay n números para ordenar, solo es necesario ordenar n-1 números, es decir, se requieren n-1 operaciones.

Sea n la longitud de la matriz, el índice de recorrido es i y comienza desde 0,
porque cada recorrido colocará el valor máximo actual en la posición de n - 1 - i, es decir, [ n-1-i,n- 1 después de cada recorrido] Los elementos del intervalo están dispuestos en orden positivo, y [0,n-1-i] está ordenado en desorden;

Y "cada viaje" debe comparar dos números adyacentes a partir del primer dígito, colocar el número más grande detrás y retroceder un dígito después de completar la comparación para continuar comparando los siguientes dos números adyacentes Relación de tamaño, repita este paso hasta el último número que aún no ha regresado.

inserte la descripción de la imagen aquí

el código

function bubbleSort(array) {
    
    
    let length = array.length;
    //遍历数组所有元素
    for (let i = 0; i < length - 1; i++) {
    
    
        //遍历未排序数组,即[0,length-1-i]的区间
        for (let j = 0; j < length - 1 - i; j++) {
    
    
            //两个挨着的元素进行比较,如果前一个比后一个大,则位置交换
            if (array[j] > array[j + 1]) {
    
    
                let item = array[j];
                array[j] = array[j + 1];
                array[j + 1] = item;
            }
        }
    }
    console.log("bubbleSort result:", array);
}


bubbleSort([1, 2, 3, 10, 9, 17, 6, 5, 7]);

inserte la descripción de la imagen aquí

la complejidad

Complejidad temporal: O(n^2),
Complejidad espacial: O(n^2);

mensaje

Lo anterior es el flujo de trabajo de la clasificación de burbujas, ¡espero que pueda inspirarte!

No toda la investigación es significativa, pero si desea profundizar, debe ser significativa

Supongo que te gusta

Origin blog.csdn.net/Long861774/article/details/126329331
Recomendado
Clasificación