Dieser Artikel implementiert acht häufig verwendete Sortieralgorithmen: Sortieren, Sortieren, Sortieren, Sortieren, Sortieren, Fusionssortieren, Stapel und LST -Basisortierung einfügen, sprudeln
Die erste ist achtalgorithmus.java -Datei .
Java.util.Arrays importieren; Sortierung einfügen: Zeitkomplex O (n^2) öffentliches statisches void InsertSort (int a [], int n) {für (int i = 1; i <n; ++ i) {{int temp = a [i]; int j = i -1; ;}} // Blasensortierung: Zeitkomplexität O (n^2) öffentliches statisches Void Bubblesort (int a [], int n) {für (int i = n -1; i> 0; 0; 0; 0; 0; 0; 0; 0 0; Temp = a [j]; a [j] = a [j + 1]; int a [], int n) {für (int i = 0; i <n -1; ++ i) {int min = a [i]; J <n; J]; Public static void Shellsort (int a [], int n) {für (int gap = n / 2; gap> = 1; gap / = 2) {für (int i = gap; i <n; ++ i) { int temp = a [i]; j + gap] = test;}} // Schnellsortierung: Zeitkomplexität O (NLGN) public static void Quicksort (int a [], int n) {_quicksort (_quicksort (a, 0, n-1);} public static void links, q -1); links <rechts && A [rechts]> = Pivot) {--Right;} a [links] = A [rechts]; rechts] = a [links];} a [links] = Pivot; n -1); Mid); -Left +1; j];} int i = 0; ] <newa [j]) {a [k] = newa [i ++];} else {a [k] = newa [j ++];} while (i <= mid -lesft) {a [k + +] = newa [i ++];} while (j <= recht (int a [], int n) {integrierte maxheap (a, n); i) {int temp = a [0]; [], int n) {upadjust (a, n);} // Das Array der Länge N wird an das öffentliche statische void upadjust (int a [], int n) {// Jedes Element mit einem untergeordneten Knoten mit einem untergeordneten Knoten angepasst. durchquert. n) {// Richtiges Kind Der Wert des Wertes ist größer als der Wert des Knotens, um sie ausgetauscht, wenn (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]; } // AdjustNode (a, n, 2 * i) einstellen (a, n, 2 * i + 1); {// Der Wert des Knotens tauschen Sie sie aus (a [2 * i -1]> A [i -1]) {int temp = a [2 * i -1]; = a - 1]; Radix ist die Basis // Diese Methode ist die LST -Methode für die Basissortierung, und die MST -Methode ist nicht enthalten // Der Parameterradix ist die Basis, im Allgemeinen 10; Zahlen zum Sortieren des Arrays; Um das Array von [] count = new int [Radix] vorübergehend einzureichen; Der erste Ort zum ersten Ort zu (int i = 0; i <<< iStance; ++ i) {System.ArrayCopy (a, 0, newa, 0, n); Die Newa -Array -Arrays.Fill (Graf, 0); ; // Erhalten Sie den Wert des aktuellen Verarbeitungsbits des Array -Element -Zähl [Radixkey] ++;} // Zu diesem Zeitpunkt wird jedes Element in Count [] durch die Häufigkeit gespeichert, die im RadixKey -Bit angezeigt wird // Berechnen Die Endposition jedes Radixkey im Array und der Positionsnummernbereich beträgt 1 -n für (int j = 1; j <radix; ++ j) {count [j] = count [j] + count [j -1 ]} // das Prinzip der Sortierung verwenden, um eine Sortierung zu erreichen. J];Testen Sie den Code Testeightalgorithmus.java , der Code lautet wie folgt:
Public class testeightalgorithmen {public static void printArray (int a [], int n) {für (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: arr.Length) Break; : Achtalgorithmus (arr.Lengt); Achtalgorithmuss.lstradixsort (arr.Length, 10, 4); Die letzten Laufergebnisse sind wie folgt:
Das obige ist der Code für Java, um acht häufig verwendete Sortieralgorithmen zu implementieren.