Este artículo describe los algoritmos de clasificación de uso común para las matrices Java. Compártelo para su referencia, como sigue:
1. Método de clasificación de burbujas
SortArray_01.java
clase pública sortArray_01 {public static void main (string args []) {int [] array = {14, 5, 86, 4, 12, 3, 21, 13, 11, 2, 55, 66, 22}; // Crear una matriz de matriz unidimensional inicializada.out.println ("matriz sin clasificar:"); for (int i = 0; i <array.length; i ++) {// elementos transversales en matriz system.out.print (" + array [i]); // Elemento de matriz de salida if ((i + 1) % 5 == 0) // una fila para cada 5 elementos System.out.Println ();} int Mid; // Define un intermediado Variable a Temperial para temporalmente (Temporizar los datos para (0; 0; 0; 0; 0; 0; 0; 0; array.length; 0;Resultados de ejecución:
Matriz sin clasificar: 14 5 86 4 12 3 21 13 11 2 55 66 22 Matriz ordenado por burbuja Método: 2 3 4 5 11 12 13 14 21 22 55 66 86
2. Clasificación incremental de matriz
SortArray_02.Java
import java.util.arrays; import java.util.random; public class sortArray_02 {public static void main (string [] args) {random rd = new Random (); int [] array = new int [15]; // declarar la matriz System.out.println ("Array antes de que se use el método de clasificación:"); for (int i = 0; i <array.length; i ++) {// use números aleatorios para generar 15 números aleatorios entre 0 y 20 matriz [i] = rd.nextint (20); // Asignar valor a la matriz de matriz.out.print ("" + matriz [i]); if ((i + 1) % 5 == 0) System.out.println (); } Arrays.sort (matriz); // Ordenar la matriz Ascending Order System.out.println ("/narray después de usar el método de clasificación:"); for (int i = 0; i <array.length; i ++) {// emite los datos en la matriz system.out.print (" + array [i]); if ((i + 1) % 5 == 0) System.out.println ();}}}Resultados de ejecución:
Matriz antes de no se usa el método de clasificación: 13 12 11 18 11 11 17 13 11 8 1 0 9 18 3Array Después de que se usa el método de clasificación: 0 1 3 8 9 11 11 11 11 11 11 13 17 18 18 18
3. Método de clasificación rápida
SortArray_03.java
clase pública sortarray_03 {public static void main (String args []) {int [] intarray = {12, 11, 45, 6, 8, 43, 40, 57, 3, 20, 15, 88, 23}; System.out.println ("Array antes de clasificar:"); for (int i = 0; i <intarray.length; i ++) {system.out.print (" + intarray [i]); // Elemento de matriz de salida if ((i + 1) % 5 == 0) // System.out.println ();} System.out.println (); int [] b = Quicksort (Intarray, 0, Intarray.length - 1); System.out.println ("Array usando QuickSort:"); if ((i + 1) % 5 == 0) // Una línea para cada 5 elementos System.out.println (); }} public static int getMiddle (int [] Array, int Left, int Right) {int temp; // hacer un tipo rápido y volver a la posición del punto central int mid = array [izquierda]; // Coloque el centro en un [0] while (izquierda <derecha) {while (izquierda <right && array [derecha]> = mid) a la derecha--; temp = Array [derecho]; // mover datos más pequeños que el punto central a la matriz izquierda [derecha] = matriz [izquierda]; matriz [izquierda] = temp; while (izquierda <derecha && array [izquierda] <= mid) izquierda ++; temp = Array [derecho]; // mover datos más grandes que el punto central a la matriz derecha [derecha] = matriz [izquierda]; matriz [izquierda] = temp; } matriz [izquierda] = Mid; // mover el centro a la posición correcta regresa a la izquierda; // Regrese al punto central} public static int [] Quicksort (int [] Array, int Left, int Right) {// Método de clasificación rápida if (izquierda <derecha - 1) {// Si el punto de partida y el nodo no se superponen, es decir, el puntero no se ha ejecutado al final int mid = getMiddle (Array, izquierda, derecha); // Recuperar el punto rápido de punto medio (matriz, izquierda, mediana 1); Quicksort (matriz, mediano + 1, derecha); } matriz de retorno; }}Resultados de ejecución:
Matriz antes de clasificar: 12 11 45 6 8 43 40 57 3 20 15 88 23 Matriz después de usar el método de selección rápida: 3 6 8 11 12 20 15 23 40 43 45 88 57
4. Seleccione el método de clasificación
SortArray_04.java
clase pública sortarray_04 {public static void main (String args []) {int [] array = {14, 5, 86, 4, 12, 3, 51, 13, 11, 2, 32, 6, 45, 34}; // crear una matriz de matriz unidimensional inicializada int keyValue; // indica el valor intent de valor int int; // indica el valor de elemento más pequeño int temp; // Variable intermedia System.out.println ("Array sin clasificar:"); for (int i = 0; i <array.length; i ++) {// elementos transversales en matriz system.out.print (""+matriz [i]); // Elemento de matriz de salida if ((i + 1) % 5 == 0) // Una fila por cada 5 elementos System.out.println (); } for (int i = 0; i <array.length; i ++) {// use el índice central del método de clasificación de selección = i; keyValue = array [i]; for (int j = i; j <array.length; j ++) if (array [j] <keyValue) {index = j; keyValue = array [j]; } temp = array [i]; matriz [i] = array [índice]; matriz [índice] = temp; } System.out.println ("/Nuse la matriz después de seleccionar la clasificación:"); for (int i = 0; i <array.length; i ++) {// atraviesa los elementos en la matriz ordenada.out.print (""+matriz [i]); // Elemento de matriz de salida if (((i + 1) % 5 == 0) System.out.println (); // una fila por cada 5 elementos}}}Resultados de ejecución:
Matriz sin clasificar: 14 5 86 4 12 3 51 13 11 2 32 6 45 34 Matrices después de usar el método de clasificación de selección: 2 3 4 5 6 11 12 13 14 32 34 45 51 86
PD: Aquí hay una herramienta de demostración para su referencia:
Demostración de animación en línea Insertar/Select/Bubble/Merge/Hill/Quick Sorting Algorithm Tool Tool:
http://tools.vevb.com/aideddesign/paixu_ys
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.