Dieser Blog basiert auf dem Divide and Conquer-Ansatz. Merge Sort ist ein 'Divide and Conquer' -Algorithmus, bei dem das Problem in Teilprobleme unterteilt und dann zusammengeführt wird, um die Lösung zu erobern. Dieser Blog über Zusammenführen Sortieren in wird Sie im Detail durch die folgenden Themen führen -
- Was ist Merge Sort in Python?
- Der Divide and Conquer-Ansatz
- Implementieren der Zusammenführungssortierung in Python
- Flussdiagramm zur Implementierung von Merge Sort
- Vorteile und Nutzung
Was ist Merge Sort in Python?
Merge Sort basiert auf dem Divide and Conquer-Algorithmus, bei dem das Eingabearray in zwei Hälften geteilt, dann separat sortiert und zurückgeführt wird, um zur Lösung zu gelangen. Die Funktion merge () wird zum Zusammenführen der sortierten verwendet .
Der Divide and Conquer-Ansatz
- Das Array wird in zwei Hälften geteilt und der Vorgang wird mit jeder Hälfte wiederholt, bis jede Hälfte die Größe 1 oder 0 hat.
- Das Array der Größe 1 ist trivial sortiert.
- Jetzt werden die beiden sortierten Arrays zu einem großen Array zusammengefasst. Dies wird fortgesetzt, bis alle Elemente kombiniert und das Array sortiert ist.
Hier ist eine Visualisierung der Zusammenführungssortierung, um das Bild für Sie zu löschen
Eingabearray = [3,1,4,1,5,9,2,6,5,4]
Java findet den höchsten Wert im Array
Kommen wir nun zur Implementierung.
Implementieren der Zusammenführungssortierung in Python
def mergeSort (nlist): print ('Splitting', nlist) wenn len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righthalf = nlist [mid:] mergeSort (lefthalf) mergeSort (rechte Hälfte) i = j = k = 0, während iAusgabe:
$ python main.py
('Aufteilen', [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
('Aufteilen', [3, 1, 4, 1, 5])
(‘Splitting’, [3, 1])
(‘Splitting’, [3])
(„Zusammenführen“, [3])
(‘Splitting’, [1])
(„Zusammenführen“, [1])
(„Zusammenführen“, [1, 3])
(‘Splitting’, [4, 1, 5])
('Aufteilen', [4])
(„Zusammenführen“, [4])
(‘Splitting’, [1, 5])
(‘Splitting’, [1])
(„Zusammenführen“, [1])
('Aufteilen', [5])
(„Zusammenführen“, [5])
(„Zusammenführen“, [1, 5])
(„Zusammenführen“, [1, 4, 5])
(„Zusammenführen“, [1, 1, 3, 4, 5])
('Aufteilen', [9, 2, 6, 5, 4])
(‘Splitting’, [9, 2])
('Aufteilen', [9])
(„Zusammenführen“, [9])
(‘Splitting’, [2])
(„Zusammenführen“, [2])
(„Zusammenführen“, [2, 9])
(‘Splitting’, [6, 5, 4])
('Aufteilen', [6])
(„Zusammenführen“, [6])
(‘Splitting’, [5, 4])
('Aufteilen', [5])
(„Zusammenführen“, [5])
('Aufteilen', [4])
(„Zusammenführen“, [4])
(„Zusammenführen“, [4, 5])
(„Zusammenführen“, [4, 5, 6])
(„Zusammenführen“, [2, 4, 5, 6, 9])
('Zusammenführen', [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]
SQL Server Tutorial für Anfänger mit BeispielenFlussdiagramm für die Implementierung von Merge Sort
Vorteile und Verwendung der Zusammenführungssortierung
Die meisten anderen Algorithmen arbeiten schlecht mit sequentiellen Datenstrukturen wie Dateien und verknüpften Listen. In diesen Strukturen benötigt der Zugriff auf ein zufälliges Element eine lineare Zeit, keine reguläre konstante Zeit. Und die Art der Zusammenführungssortierung macht es für solche Datenstrukturen einfach und schnell.Eines der besten Merkmale der Zusammenführungssortierung ist die geringe Anzahl von Vergleichen. Es macht O (n * log (n)) Anzahl von Vergleichen, aber der konstante Faktor ist im Vergleich zu Quicksort gut, was es nützlich macht, wenn die Vergleichsfunktion eine langsame Operation ist.Der Divide-and-Conquer-Ansatz der Merge-Sortierung erleichtert die parallele Verarbeitung.
Damit sind wir am Ende dieses Blogs zum Thema „Implementieren der Zusammenführungssortierung in Python“ angelangt. Ich hoffe, der Inhalt hat Ihr Wissen in Python aufgewertet. Um detaillierte Informationen zu Python und seinen verschiedenen Anwendungen zu erhalten, können Sie sich live anmelden mit 24/7 Support und lebenslangem Zugriff.