Tipo de selección de clasificación de algoritmo 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.

¡Este artículo describirá la clasificación por selección y la diferencia entre la clasificación por selección y la clasificación por burbujas!
Porque muchas personas no pueden explicar con precisión la diferencia entre el ordenamiento por selección y el ordenamiento por burbujas cuando piensan detenidamente, ¡e incluso piensan que son lo mismo!

clasificación de selección

La clasificación por selección es un algoritmo de clasificación simple e intuitivo. Como sugiere el nombre, el punto central de la ordenación por selección es elegir, elegir el valor máximo o mínimo en la matriz. , y luego se coloca lógicamente en la ubicación especificada.

Principio de implementación del ordenamiento por selección

  • Primero encuentre el elemento más pequeño (más grande) en la secuencia no ordenada y guárdelo al principio de la secuencia ordenada;
  • Luego, continúe buscando el elemento más pequeño (el más grande) de los elementos sin clasificar restantes y luego colóquelo al final de la secuencia ordenada;
  • Y así sucesivamente hasta que todos los elementos estén ordenados;

inserte la descripción de la imagen aquí

el código


function selectionSort(array) {
    //外循环控制次数
    for (var i = 0; i < array.length; i++) {
        //假定最小值用于比较
        var min = array[i];
        //j=i+1使其从剩余元素中进行筛查
        for (var j = i + 1; j <= array.length; j++) {
            //从剩余数字中寻找最小值
            if (min > array[j]) {
                //更新最小值
                min = array[j];
                //交换a[j]和a[i]
                var item = array[j];
                array[j] = array[i];
                array[i] = item;
            }
        }

    }
    console.log("selectionSort result:", array);
}

selectionSort([4, 5, 1, 3, 2]);

valor de salida:
inserte la descripción de la imagen aquí

la complejidad

Complejidad temporal de la clasificación por selección,
complejidad temporal: O(n^2),
complejidad espacial: O(n);

Comparación entre la ordenación por selección y la ordenación por burbuja

la diferencia:

  • Clasificación de burbuja: comparación por pares, intercambio instantáneo.
  • Clasificación del método de selección: encuentre primero el valor más alto e intercambie una vez.

Pros y contras:

  • La ordenación por selección es más rápida que la ordenación por burbuja. El número de intercambio de elementos de clasificación de selección es O(n), y el número de intercambio de elementos de clasificación de burbuja es O(n^2).Dado que el tiempo de CPU requerido para el intercambio es mayor que el tiempo de CPU requerido para la comparación, cuando el el valor de n es pequeño, la ordenación por selección es más costosa que el riesgo La ordenación por burbujas es rápida;
  • La ordenación por burbuja es más sencilla de implementar que la ordenación por selección. Si la cantidad de datos a clasificar es pequeña y los requisitos de eficiencia no son altos, la clasificación de burbujas puede cumplir por completo;

mensaje

Parece que la lógica de la clasificación por selección y la clasificación por burbujas es la misma, y ​​ambas pueden realizar la función de clasificación, pero, de hecho, la velocidad de cálculo no es la misma, que es el encanto del algoritmo básico.

¡Cuanto más grande sea el círculo, más posibilidades impredecibles!

Supongo que te gusta

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