Das schnelle Sortieren kann sich sehr schnell anfühlen, wenn Sie diesen Namen hören, aber der schlimmste Fall seines Algorithmus -Zeitkomplexität ist das gleiche wie die Einfügungssortierung. Der Grund, warum es schnell wird, ist, dass seine durchschnittliche Effizienz schneller als die Sortierung des Haufens ist. müssen neue Speicherplatz direkt im Originalarray öffnen. Die Idee der schnellen Sortierung ist sehr einfach, bei der ein Schlüsselwort k ausgewählt wird, um das ursprüngliche Array in zwei Teile G1 und G2 zu unterteilen. zu k. Die Sortiermethode im Code ist die Beschreibung der Anweisung gerade jetzt. Der Schlüsselalgorithmus besteht darin, die Position von K zu finden und das ursprüngliche Array in zwei Teile zu unterteilen. Die Methode GetPlocation ist der Kern der schnellen Sortierung. Sein Implementierungsprinzip ist ein bisschen wie Sortieren, aber ein bisschen wie. Jedes Mal, dass das Element in der MAP als Schlüsselwort verwendet wird, indem das Endelement mit dem Endelement verglichen wird, ist das Array in zwei Teile in der Größe aufgeteilt. und j sind größer als Kern, ich und j sind wie gierige Schlangen. Gehen Sie vorwärts. Nach einer solchen Schlaufe wird der Start bis zum Ende von 1 durch die Größe getrennt.
Die Codekopie lautet wie folgt:
öffentliche Klasse Quicksort {
public int getPlocation (int [] map, int start, int End) {
int core = map [Ende];
int i = start-1;
für (int j = start; j <= end-1; j ++) {
if (map [j] <= core) {
i ++;
int cache = map [j];
Karte [j] = map [i];
Karte [i] = cache;
}
}
i ++;
Karte [Ende] = Karte [i];
Karte [i] = core;
kehre I zurück;
}
public void sort (int [] map, int start, int End) {
if (starten <end) {
int p = getPlocation (Karte, Start, Ende);
sortieren (Karte, Start, p-1);
sortieren (Karte, p+1, Ende);
}
}
public static void main (String [] args) {
int [] map = new int [] {4,1,5,3,7,12,65,7};
QuickSort QS = new QuickSort ();
qs.sort (map, 0, map.length-1);
für (int i = 0; i <map.length; i ++) {
System.out.println (MAP [i]);
}
}
}