1. Clasificación de burbujas
Idea de algoritmo: atraviese la matriz a ordenar y compare dos elementos adyacentes cada vez. Si su orden de disposición es incorrecto, intercambie sus posiciones. Después de un viaje a la clasificación, el elemento más grande flotará hasta el final de la matriz. Repita hasta que se complete la clasificación.
Demostración de muestra:
Implementación de algoritmo:
for (int i = 0; i <array.length-1; i ++) {// Ordena n-1 veces como máximo para (int j = 0; j <array.length-i-1; j ++) {// el número de veces que deben intercambiarse if (array [j]> array [j+1]) {int temp = array [j]; matriz [j] = array [j+1]; matriz [j+1] = temp; }}}Complejidad del tiempo del algoritmo: O (N2) El bucle externo debe compararse N-1 Times, y el bucle interno debe compararse n veces.
2. Seleccione la clasificación
Idea de algoritmo: vuelva a seleccionar el elemento más pequeño en la matriz para clasificarlo e intercambiarlo con el elemento en la primera posición de la matriz. Luego seleccione un elemento más pequeño de los elementos restantes e intercambie con el elemento en la segunda posición. Si el elemento más pequeño es el elemento en esa posición, cambia con sí mismo, y así sucesivamente hasta que se complete la clasificación.
Demostración de muestra:
Implementación de algoritmo:
for (int i = 0; i <array.length; i ++) {int min = i; for (int j = i+1; j <array.length; j ++) {if (array [j] <array [min]) {min = j; }} int temp = array [min]; matriz [min] = matriz [i]; matriz [i] = temp; } Complejidad del tiempo: O (N2) requiere comparaciones de N2/2 y N intercambios
3. Insertar clasificación
Idea de algoritmo: comience a atravesar desde el segundo elemento de la matriz, compare el elemento con el elemento anterior, si el elemento es más pequeño que el elemento anterior, guarde el elemento en una variable temporal, mueva el elemento anterior hacia atrás y luego inserte el elemento en una posición adecuada. Después de completar cada clasificación, se deben ordenar los elementos en el lado izquierdo del índice, pero aún se pueden mover. Para matrices con menos inversiones, cuanto más eficiente sea el algoritmo.
Nota: Invertido: 5 3 6 2 El término invertido es 5-3 5-2 3-2 6-2
Demostración de muestra:
Implementación de algoritmo:
for (int i = 1; i <array.length; i ++) {for (int j = i; j> 0 && array [j] <array [j-1]; j-) {int temp = array [j]; array [j] = array [j-1]; matriz [j-1] = temp; }}Complejidad del tiempo: O (N2) Peor Caso N2/2 Comparación, N2/2 Exchange Mejor Caso N-1 Comparación, 0 intercambios
Los tres algoritmos de clasificación simples anteriores (implementados usando Java) son todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.