Das Beispiel dieses Artikels zeigt die Sortierung der Zusammenfassung der Java -Sort -Algorithmus. Teilen Sie es für alle für Ihre Referenz. Die spezifische Analyse ist wie folgt:
Im Jahr 1991 erfand Robert W. Flayd, Professor an der Abteilung für Computerwissenschaften des Instituts für Computerwissenschaften der Stanford University, und J. Williams 1964 haben die berühmte Haufen Sorte (Heap Sort) gemeinsam erfunden Dieser Artikel führt hauptsächlich Java in die Haufenssorierung ein.
Heapsort bezieht sich auf einen Sortierungsalgorithmus, der durch die HOP -Datenstruktur (HEAP) entwickelt wurde und die Eigenschaften des Arrays verwenden kann, um das Element der angegebenen Indizes schnell zu lokalisieren. Die Stapelreihenfolge ist eine instabile Sortiermethode.
Die Stapelreihenfolge verwendet die Eigenschaften des maximalen (oder Minimum) der Schlüsselwörter eines großen Pfahlpfahl -Stapel -Top -Datensatzes, wodurch das maximale (oder minimale) Schlüsselwort im aktuellen ungeordneten Bereich einfach ist.
(1) grundlegende Ideen mit einem großen Stapel sortiert
① Erstellen Sie zuerst die anfängliche Datei R [1..n] in einen großen Wurzelstapel. erfüllen r [1 .. n-1] .Keys ≤r [n] .Key
③ Da die neue Wurzel-R [1] nach dem Austausch gegen die Art des Haufens verstoßen kann, sollte der aktuelle Nicht-Orderly-Bereich R [1 .. N-1] in einen Haufen eingestellt werden. Dann werden die Schlüsselwörter in den Schlüsselwörtern in R [1..N-1] erneut mit dem letzten Datensatz R [N-1] im Intervall ausgetauscht, in dem eine neue ungeordnete Region R [1 ..... N-2) erhielt ] und ein ordentlicher Bereich r [n-1..n] und erfüllen immer noch die Beziehung r [1 ..- .. n-2] .Keys ≤r [n-1..n] .Keys, auch zu r [1..N-2] Einstellen auf den Haufen.
Nympho
Bis es nur ein Element im ungeordneten Bereich gibt.
(2) Grundbetrieb des Sortieralgorithmus großer Wurzeln:
① Betrieb initialisieren: Konstruktion von R [1..N] in den anfänglichen Haufen;
② Grundbetrieb jeder Art: Tauschen Sie den letzten Rekord des Pfahldatensatzes R [1] im aktuellen ungeordneten Bereich aus und passen Sie dann den neuen ungeordneten Bereich in einen Stapel an (auch als Wiederaufbau bezeichnet).
Beachten:
① Führen Sie einfach die N-1-Sortierung durch und wählen Sie ein größeres N-1-Schlüsselwort aus, um die Datei in der Reihenfolge zu erhöhen.
② Die Sortierung mit kleinen Wurzeln ähnelt großen Wurzeln, aber die Sortierergebnisse nehmen ab und ordnungsgemäß. Die Stapelreihenfolge und die direkte Auswahl der Sortierung sind entgegengesetzt: Zu jedem Zeitpunkt liegt die ungeordnete Region immer vor dem ordnungsgemäßen Bereich, und der ordnungsgemäße Bereich wächst allmählich von der Rückseite des ursprünglichen Vektors zum gesamten Vektor.
Code -Implementierung:
Public class test {public static int [] heap = {10, 32, 1, 9, 5, 7, 0, 4, 3}; {int i; +) System.out .printf ("%3S", Heap); (i = 1; i <index -1; i ++) System.out.printf ("%3S", Heap); Void CREAP (int Root, int Index) {int i, j; Der Submp = Kopf [Root]; [j]) Finish = 1; ; ; // Die Stapel-Sortierung für (i = index-1; i> = 1; i ------- Heap [1] = Testheap (1, i); "%3S", Heap [j]);
Der Haufen kann als Baum angesehen werden, und die Höhe des Knotens in der Höhe kann als die Anzahl der längsten einfachen Tropfenpfad vom Knoten zum Blattknoten definiert werden. Wurzel. Wir werden sehen, dass einige der grundlegenden Operationen auf der Haufenstruktur meist proportional zur Höhe des Baumes sind, das O (LGN) ist. Durch das Lesen dieses Artikels hoffe ich Ihnen zu helfen.
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.