Das Beispiel dieses Artikels zeigt die Implementierung und einfache Analyse mehrerer Java -Sortieralgorithmen an. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
Pakettest; Es ist festgelegt, ob vietnamesisch, aber die Anfrage des Arrays von der zweiten Zahl beginnt [J] <J -1 1]) {int temp = list [j]; Basis, binäre Suche addieren*/platzieren void bininsertSort (int [] r, int niedrig, int hoch) {für (int i = niedrig+1; i <= hoch; i ++) {int temp = r [i]; // Speichern Sie das Element int Hi = i -1; ; wenn (if (if (if (if + hi) / 2; if (wenn temp <r [Mid]) Hi = Mid -1; Elselo = Mid + 1;} für (int j = i -1; J> Hi; int [] r, int niedrig, int hoch, int [] Delta) {für (für (für (für (]. int k = 0; k <delngth; k ++) Shellinsert (r, niedrig, hoch, delta [ K]);} private void Shellinsert (int [] r, int niedrig, int deldak) {für (int i = niedrig+deltak; i <= hoch; i ++) if (r [i] <r [i- Deltak]) {int temp = r [i]; ]; +) {// als n -1 -Ausflüge nach int min = k; <r [min]) min = i; min]; i = n/2; 1 1; ]; J <= hoch; r [j]; 0, 99, 55, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 3, 2, 1}; fs.insertSort (a); , 0, A.Length-1);
Sortieren, Austauschsortierungen, Sortieren von Selektionen, Fusionssortierungen und andere Sortiermethoden haben ein gemeinsames Merkmal, dh alle bestimmen die relative Position zwischen Elementen durch vergleichende Elemente, dh die obigen Sortiermethoden basieren auf der Vergleichsart. Im Folgenden werden wir basierend auf vergleichenden Sortiermethoden vergleichen und zusammenfassen.
Wir vergleichen hauptsächlich die Sortiermethoden mit der durchschnittlichen Zeitkomplexität des Algorithmus, der schlimmsten Zeitkomplexität, der Komplexität des Raums und der Stabilität der Sortierung.
Sortiermethode Durchschnittliche Zeitkomplexität Die schlimmste Zeitkomplexität Komplexität Die Komplexität des Raum ) (N log n) l (n2) ο (log n) instabil und einfach sortieren ο (n2) ο (1) (1) instabile Heap -Sortierung (n log n) (n log n) ο (n log log log log log log n) ο (n log) 1) instabil
In Bezug auf die Zeitleistung ist die schnelle Sortierung die beste tatsächliche Leistung in allen Sortieralgorithmen. Dies kann durch Ändern der schnellen Sortierung vermieden werden. Im Vergleich der Stapelsortier- und Fusionssortierung ist die Zeit, die für Fusionen und Sortieren erforderlich ist, geringer, aber mehr Hilfsspeicherplatz erforderlich.
Aus der Perspektive der Methodenstabilität ist die Komplexität des Sortierens von (N2) eine stabile Sortiermethode. Die meisten Sortiermethoden mit guter Leistung wie schnelles Sortieren, Sortieren und Sortieren von Hill sind instabil. Im Allgemeinen ist die Sortiermethode des Vergleichs zwischen dem Sortierprozess stabil.
Darüber hinaus wird die Stabilität der Sortiermethode durch die Methode selbst bestimmt.
Zusammenfassend ist keine der oben diskutierten Sortiermethoden absolut optimal.
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.