Wie implementiere ich Merge Sort in Python?



In diesem einfachen Tutorial erfahren Sie, wie Sie Merge Sort verwenden und wie Sie den Algorithmus und die Implementierung in Python anwenden

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?

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

Sortierung zusammenführen | Edureka Blogs | Edureka
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 i

Ausgabe:

$ 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 Beispielen

Flussdiagramm 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.