Este artigo implementa oito algoritmos de classificação comumente usados: inserindo classificação, classificação borbulhante, selecionando classificação, classificação de colinas, classificação rápida, classificação de fusões, empilhamento e classificação de base LST
首先是EightAlgorithms.java文件,代码如下:
Importar java.util.arrays; Inserir classificação: complexo de tempo o (n^2) public static void insertsort (int a [], int n) {for (int i = 1; i <n; ++ i) {{int temp = a [i]; int j = i -1; ;}} // classificação de bolhas: complexidade do tempo o (n^2) public static void bubblesort (int a [], int n) {for (int i = n -1; i> 0; 0; 0; 0; 0 0; Temp = a [j]; int a [], int n) {for (int i = 0; i <n -1; ++ i) {int min = a [i]; j <n; j]; Public static void Shellsort (int a [], int n) {for (int gap = n / 2; gap> = 1; gap / = 2) {for (int i = gap; i <n; ++ i) { int temp = a [i]; j + gap] = teste;}} // classificação rápida: complexidade do tempo o (nlgn) public static void Quicksort (int a [], int n) {_quicksort (_quicksort (a, 0, n-1);} public static void para a esquerda, q -1); Esquerda <direita && a [direita]> = pivot) {--right;} a [esquerda] = a [direita]; direita] = a [esquerda];} a [esquerda] = pivot; , n -1); Mid); -Left +1; j];} int i = 0; ] <newa [j]) {a [k] = newa [i ++];} else {a [k] = newa [j ++];} while (i <= médio -left) {a [k + +] = newa [i ++];} while (j <= direita -left) {a [k ++] = newa [j ++];} // classificação de heap: complexidade do tempo o (nlgn) public void Heapsort (int a [], int n) {BuiltMaxHeap (a, n); i) {int temp = a [0]; [], int n) {upadjust (a, n);} // a matriz de comprimento n é ajustada ao ajuste público de vazio estático Traversed. n) {// Criança direita O valor do valor é maior que o valor do nó, trocou -os se (a [2 * i]> a [i -1]) {int temp = a [2 * i]; a [2 * i] = a [i -1]; i -1]> a [i -1]) {int temp = a [2 * i -1]; } // Ajuste ajuste (a, n, 2 * i); {// O valor do nó, troque -os se (a [2 * i -1]> a [i -1]) {int temp = a [2 * i -1]; = a - 1]; da matriz, o Radix é a base // Este método é usar o método LST para classificação de base, e o método MST não está incluído nele // O parâmetro Radix é a base, geralmente 10; de números para a matriz a ser classificada; Para depositar temporariamente a matriz de [] count = new int [radix]; o primeiro lugar para o primeiro lugar para (int i = 0; i <<< istence; ++ i) {System.arraycopy (a, 0, newa, 0, n); a Array Newa Array.Fill (contagem, 0); ; A posição final de cada radixkey na matriz e o intervalo de número de posição é 1 -n para (int j = 1; j <radix; ++ j) {count [j] = count [j] + contagem [j -1 ];} // Use o princípio da contagem de classificação para obter um tipo. j];Em seguida, o código de teste TestightAlgorithms.java , o código é o seguinte:
Classe pública Testightalgorithms {public static void PrintArray (int a [], int n) {for (int i = 0; i <n; ++ i) {System.print (a [i] +""); == n -1) {System.out.println ();}} public static void main (string [] args) {for (int i = 1; i <= 8; ++ i) {int arrr [] = {45, 38, 26, 77, 128, 38, 25, 444, 61, 153, 9999, 1012, 43, 128}; 2: Oito, BRACE; : Oito, Breaks. Oitogorithms. Os resultados da última execução são os seguintes:
O acima é todo o código para o Java implementar oito algoritmos de classificação comumente usados.