Este artigo descreve os algoritmos de classificação comumente usados para matrizes Java. Compartilhe -o para sua referência, como segue:
1. Método de classificação de bolhas
SortArray_01.java
classe pública STELArray_01 {public static void main (string args []) {int [] array = {14, 5, 86, 4, 12, 3, 21, 13, 11, 2, 55, 66, 22}; // Crie uma matriz unidimensional inicializada System.out.println ("Array não classificado:"); para (int i = 0; i <Array.Length; i ++) {// Traverse elementos no array system.out.print (" + array [i]); // elemento de matriz de saída if ((i + 1) % 5 == 0) // uma linha para cada 5 elementos System.println ();} int; Array.Length; 0;Resultados em execução:
Matriz não classificada: 14 5 86 4 12 3 21 13 11 2 55 66 22 Matriz Classificada por Bubble Método: 2 3 4 5 11 12 13 14 21 22 55 66 86
2. Classificação incremental da matriz
SortArray_02.Java
importar java.util.arrays; importar java.util.random; public class SortArray_02 {public static void main (string [] args) {aleather rd = new Random (); int [] array = new int [15]; // Declare o Matriz System.out.println ("Array antes que o método de classificação seja usado:"); for (int i = 0; i <array.length; i ++) {// use números aleatórios para gerar 15 números aleatórios entre 0 e 20 matriz [i] = rd.nextint (20); // Atribua valor ao Array Array System.out.print ("" + Array [i]); if ((i + 1) % 5 == 0) System.out.println (); } Arrays.sort (Array); // Classifique o Sistema de Ordem Ascendente da Array.out.println ("/Estarray após o uso do método de classificação:"); para (int i = 0; i <Array.Length; i ++) {// Emputa os dados no array system.out.print (" + array [i]); if ((i + 1) % 5 ==) System.out.println ();}}}Resultados em execução:
Array antes que o método de classificação não seja usado: 13 12 11 18 11 11 17 13 11 8 1 0 9 18 3Array após ser usado o método de classificação: 0 1 3 8 9 11 11 11 11 11 12 13 17 18 18 18
3. Método de classificação rápida
SortArray_03.java
classe pública STELArray_03 {public static void main (string args []) {int [] intray = {12, 11, 45, 6, 8, 43, 40, 57, 3, 20, 15, 15, 88, 23}; System.out.println ("Array antes de classificar:"); para (int i = 0; i <intray.length; i ++) {System.out.print (" + INTARRAY [i]); // Elemento de matriz de saída if ((i + 1) % 5 == 0) // System.out.println ();} System.out.println (); IntrAyn; System.out.println ("Array usando o Quicksort:"); if ((i + 1) % 5 == 0) // uma linha para cada 5 elementos System.out.println (); }} public static int getMiddle (int [] matriz, int esquerda, int à direita) {int temp; // Faça uma classificação rápida e retorne à posição central do ponto int mid = matriz [esquerda]; // Coloque o centro em um [0] while (esquerda <direita) {while (esquerda <direita && Array [direita]> = mid) direita--; temp = matriz [direita]; // mova os dados menores que o ponto central para a matriz esquerda [direita] = matriz [esquerda]; matriz [esquerda] = temp; while (esquerda <direita && Array [esquerda] <= mid) esquerda ++; temp = matriz [direita]; // mova os dados maiores que o ponto central para a matriz direita [direita] = matriz [esquerda]; matriz [esquerda] = temp; } matriz [esquerda] = MID; // mova o centro para a posição correta retorna à esquerda; // retorna ao ponto central} public static int [] QuickSort (Int [] Array, int esquerda, int direita) {// Método de classificação rápida se (esquerda <direita - 1) {// Se o ponto de partida e o nó não se sobrepor, isto é, o ponteiro não foi executado para o final Int = getMiddle (Array, esquerda, direita, direita); // Recuperar o Ponto Médio Quicksort (Array, Esquerda, Mid - 1); Quicksort (Array, Mid + 1, à direita); } retornar a matriz; }}Resultados em execução:
Array antes de classificar: 12 11 45 6 8 43 40 57 3 20 15 88 23 Array Após o uso do método do QuickSelect: 3 6 8 11 12 20 15 23 40 43 45 45 88 57
4. Selecione Método de classificação
SortArray_04.java
classe pública STELArray_04 {public static void main (string args []) {int [] array = {14, 5, 86, 4, 12, 3, 51, 13, 11, 2, 32, 6, 45, 34}; // Crie uma matriz unidimensional inicializada Int KeyValue; // indica o menor valor de elemento Int índice; // indica o menor valor de elemento int temp; // intermediário variável system.out.println ("matriz não classificada:"); para (int i = 0; i <Array.Length; i ++) {// Traverse Elements in Array Matriz System.out.print (""+Array [i]); // elemento da matriz de saída if ((i + 1) % 5 == 0) // Uma linha para cada 5 elementos System.out.println (); } para (int i = 0; i <array.length; i ++) {// use o índice do núcleo do método de classificação de seleção = i; keyvalue = matriz [i]; for (int j = i; j <array.length; j ++) if (array [j] <keyvalue) {index = j; keyvalue = matriz [j]; } temp = array [i]; Array [i] = Array [index]; Array [índice] = temp; } System.out.println ("/NUSE A matriz após selecionar a classificação:"); para (int i = 0; i <array.length; i ++) {// atravessa os elementos no sistema de matriz classificado.out.print (""+array [i]); // Elemento de matriz de saída if ((i + 1) % 5 == 0) System.out.println (); // Uma linha para cada 5 elementos}}}Resultados em execução:
Matriz não classificada: 14 5 86 4 12 3 51 13 11 2 32 6 45 34 Matrizes após o uso do método de classificação de seleção: 2 3 4 5 6 11 12 13 14 32 34 45 51 86
PS: Aqui está uma ferramenta de demonstração para sua referência:
Demonstração de animação on -line Inserir/selecionar/Bubble/Merge/Hill/Quick Strating Algorithm Process Fool:
http://tools.vevb.com/aideddesign/paixu_ys
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.