Siete algoritmos de clasificación de la estructura de datos

1. Ordenación por inserción directa 1. Ordenación por inserción directa por
principio
. Toda su matriz se divide en dos intervalos, a saber, un intervalo no ordenado y un intervalo ordenado
. Cada vez que seleccione el primer elemento del intervalo no ordenado, seleccione la posición adecuada para insertar en el intervalo ordenado . No hay mucho que decir, veamos su implementación de código a continuación:
2. La implementación de código
Siete algoritmos de clasificación de la estructura de datos
analizará el rendimiento de esta clasificación. La peor complejidad de tiempo es o (N), la mejor complejidad de tiempo es o (N ^ 2), luego la complejidad promedio El grado es o (N ^ 2). Su complejidad espacial es o (1) y no necesita abrir espacio adicional. Se puede ver que esta clasificación no invierte la posición relativa del mismo número, cuando clasificamos, elegimos mayor o igual a la derecha del número. Entonces es un tipo estable. Si un grupo de números está básicamente en orden, entonces el algoritmo de ordenación por inserción será más eficiente.
II. Clasificación Hill
1. Principio
La clasificación Hill se basa en la clasificación por inserción. Divide toda la matriz en grupos de espacios y luego clasifica cada grupo. Después de la clasificación, se sintetiza una matriz y luego se divide en espacios / 2 Agrupe, repita los pasos anteriores hasta gap = 1; luego inserte la matriz completa para obtener la matriz ordenada final.
2. Implementación del código
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
Analicemos el rendimiento de esta clasificación. Está optimizado sobre la base de la clasificación por inserción, por lo que su complejidad temporal es menor que la clasificación por inserción. La peor complejidad temporal es o (N ^ 2), la mejor Es o (N), la complejidad promedio es o (N ^ 1.3), y la complejidad espacial es o (1), que no es un tipo estable, porque la posición relativa del mismo número no puede garantizarse durante el proceso de agrupación.
3. Selección y ordenación
1. Principio
Cada vez, el elemento más grande se selecciona del intervalo desordenado y se almacena al final del intervalo desordenado hasta que se organizan todos los datos que se van a ordenar.
2. Implementación del código
Siete algoritmos de clasificación de la estructura de datos
El siguiente análisis del rendimiento de clasificación, peor complejidad de tiempo o (N ^ 2), mejor complejidad de tiempo o (N), complejidad de tiempo promedio o (N ^ 2), complejidad de espacio o (1), Es un tipo inestable.
Cuatro, tipo montón
1. La
clasificación del montón principal también se basa en la clasificación por selección, excepto que selecciona el elemento más grande construyendo un montón grande, intercambia el elemento superior del montón con el último elemento del montón y luego lo coloca en otra matriz, y luego Ajuste la pila hacia abajo.
2. Implementación del código
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos

Veamos el rendimiento del algoritmo a continuación: la complejidad del tiempo es o (N * logN), la complejidad del espacio es o (1) y el tipo de pila sigue siendo inestable.
5. Clasificación de burbujas
1. Principio La
clasificación de burbujas también divide la matriz en dos intervalos, el intervalo no ordenado [0, matriz.length-i-1] y el intervalo ordenado [matriz.length-i-1, matriz.length] , Saque un número del intervalo desordenado en orden cada vez, compárelo con los siguientes números uno por uno y coloque los números grandes detrás hasta que todos los números estén cruzados. El número de burbujeo es array.length y el número de comparaciones es array.length-i-1.
2. Implementación del código
Siete algoritmos de clasificación de la estructura de datos
Veamos el rendimiento del algoritmo. La peor complejidad temporal es o (N ^ 2), la mejor complejidad temporal es o (N), la complejidad temporal promedio es o (N ^ 2) y la complejidad espacial es o (1). El tipo de burbuja es un tipo estable. Porque en el proceso de comparación, el número mayor que se deja atrás.

6. Clasificación rápida
1. Principio
Elija un valor del rango que desee clasificar como valor de referencia, recorra todo el rango que desee clasificar y coloque el valor más pequeño que el valor de referencia en el lado izquierdo y el valor más pequeño que en el lado derecho y en las celdas izquierda y derecha Procese de la misma manera hasta que la longitud de la celda sea 1, o la longitud sea 0, lo que significa que todas las celdas han sido ordenadas.
2.
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
La peor complejidad temporal del código para implementarlo es 0 (N ^ 2), la mejor complejidad temporal es o (N logN), la complejidad temporal media es o (N logN) y la complejidad espacial es o (N logN). Inestable, se puede ver que es mucho más eficiente que los anteriores.
7. Fusionar y ordenar
1. Principio:
El método de dividir y conquistar se utiliza para fusionar las subsecuencias que se han ordenado, primero hacer cada subsecuencia en orden, luego hacer cada secuencia en orden y finalmente fusionar en una matriz ordenada.
2. El código se da cuenta de que
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
Siete algoritmos de clasificación de la estructura de datos
la complejidad temporal del algoritmo de clasificación es o (N
logN) y la complejidad del espacio es o (N), que es una clasificación estable.

Supongo que te gusta

Origin blog.51cto.com/14632675/2542537
Recomendado
Clasificación