Dieser Artikel beschreibt die Implementierungsmethode der Cocktailsortierung in der Sortierung von Java Exchange. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
Cocktailsortierung, dh Richtungsblasensortierung, Cocktail -Sortieren, Rührensortieren (kann auch als Verformung der Sortierung der Selektion angesehen werden), Wellensortieren, Hin- und Her -Sortieren oder Happy -Hour -Sortierungen sind eine Verformung der Blasensortierung. Der Unterschied zwischen diesem Algorithmus und der Blasensortierung besteht darin, dass es beim Sortieren in zwei Richtungen in der Sequenz sortiert wird.
Anders als Blasensortierung:
Cocktailsortierung entspricht einer leichten Verformung der Blasensortierung. Die Differenz ist von niedrig bis hoch und dann hoch bis niedrig, während die Blasensortierung nur jedes Element in der Sequenz von niedrig bis hoch vergleicht. Er kann eine etwas bessere Leistung erzielen als Blasensortierung, da die Blasensorte nur von einer Richtung (von niedrig bis hoch) verglichen wird und nur einen Gegenstand pro Schleife bewegt.
Wenn Sie die Sequenz (2,3,4,5,1) als Beispiel einnehmen, erfordert die Cocktail -Sortierung nur einen Besuch in der Sequenz, um die Sortierung zu vervollständigen, aber viermal bei Verwendung der Blasensortierung. Im Zustand einer chaotischen Sequenz ist die Effizienz der Cocktailsortierung und der Sortierung von Blasen jedoch sehr schlecht.
Schlimmste Zeitkomplexität O (n^2)
Optimale Zeitkomplexität O (n)
Durchschnittliche Zeitkomplexität O (n^2)
Das dynamische Bild der Cocktailsortierung lautet wie folgt:
Codeanalyse:
Paket com.baobaotao.test; = Array.Length; J]> Array [j+1]) {SWAP (Array, j, j+1); <Array [j-1]) {SWAP (Array, j-1, j); statische void cocatailSortflag (int [] Array) {int länge = array.length; ; Flag2 = true; = false; ; Flag2 = false; einkeimt werden b * @param c Die Nummer, die eingehende C */ public static void Swap (int [] a, int b, int c) {int temp = 0; b]> a [c]) {temp = a [b]; void printarr (int [] array) {für (int c: array) {System.out.print (c + ""); int [] number = {11,95,45,15,78,84,51,24,12}; CocatailSort (Nummer);Ergebnisanalyse:
11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95 11 12 15 24 45 51 78 84 95 ************************************** * *** 11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95
Es ist zu erkennen, dass die Häufigkeit der Cocktails sortiert ist, viel geringer als die der gewöhnlichen Blasensorten. Es dauert nur 4 Mal, und die verbesserte Version des Logo -Cocktailsortiers dauert nur dreimal, um die Sortierung zu vervollständigen.
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.