Das Beispiel dieses Artikels zeigt die Zusammenfassung der Zusammenfassung und Sortierung der Zusammenfassung der Java -Sortieralgorithmus. Teilen Sie es für alle für Ihre Referenz. Die spezifische Analyse ist wie folgt:
Merge -Operation (Merge), auch als Fusionalgorithmus bekannt, bezieht sich auf das Zusammenführen von zwei Sequenzen, die in eine Sequenzoperation sortiert wurden. Schauen wir uns ähnlich wie bei der schnellen Sortierung die Implementierung der Fusionen in Java an.
Merge -Sortierung (Merge) besteht darin, die beiden (oder mehr) oder mehr Bestellabellen in eine neue Ordnung zu verschmelzen, dh die zu sortierte Sequenz in mehrere Sequenzen, und jede nachfolgende Sequenz ist ordnungsgemäß. Kombinieren Sie dann die Ordersequenz in die Gesamtreihenfolge.
Merge -Sortierung ist ein effektiver Sortieralgorithmus, der auf Fusionsoperationen basiert. Dieser Algorithmus ist eine sehr typische Anwendung von Kluft und Eroberung. Fusionieren Sie die vorhandenen nachfolgenden Sequenzen, um eine vollständig geordnete Sequenz zu erhalten. Wenn die beiden bestellten Tabellen in eine ordnungsgemäße Tabelle mit 2-Straße bezeichnet werden.
Sortieralgorithmen sind stabil, und das Array benötigt einen zusätzlichen Platz von O (n).
Arbeitsprinzip:
1. Anmelden Sie Platz für die Größe der beiden sortierten Sequenzen.
2. Setzen Sie zwei Zeiger, und die Anfangspositionen sind die Ausgangsposition von zwei sortierten Sequenzen.
3. Vergleichen
4. Wiederholen Sie Schritt 3, bis ein Zeiger das Sequenzende erreicht
5. Kopieren Sie alle verbleibenden Elemente in der anderen Sequenz direkt zum Schwanz der Fusionssequenz
Code -Implementierung:
//////////////// öffentliche void mergesort () {long [] Workspace = new Long [Nelems]; [] Workspace, int untergebracht, int in der oberen Stelle) {if (untergebracht). MID+ 1, oberer Gebäude); ; +] = Thearray [lowPtr ++];} else {Arbeitsbereich [j ++] = thearray [highPtr ++];} while (lowPtr <= mid) {WorkSpace [j ++] = thearray [lowPtr ++]; } While (HighPtr <= UPP -ausgebunden) {Arbeitsspeicher [j ++] = thearray [HighPtr ++];} für (j = 0; j <n; j ++) {thearray [LowerBound+J] = WorkSpace [J. ];}}
Die Zusammenführung der Sortierung ist eine relativ stabile Sortierung. In der Reihenfolge der Eingabe ist es wichtig, dass andere Informationen in der Reihenfolge der Eingabe so weit wie möglich angeordnet werden.
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.