Contents
Merge-Sort ist ein effizienter, universeller, vergleichsbasierter Sortieralgorithmus. Merge-Sort ist ein Divide-and-Conquer-Algorithmus, der 1945 von John von Neumann erfunden wurde. Die meisten Implementierungen erzeugen eine stabile Sortierung, was bedeutet, dass zwei Elemente mit demselben Wert dieselbe relative Position in der Ausgabe wie in der Eingabe haben . Mit anderen Worten, die relative Reihenfolge von Elementen mit gleichen Werten wird in der sortierten Ausgabe beibehalten.
Merge sort zerlegt eine Liste wiederholt in mehrere Unterlisten, bis jede Unterliste aus einem einzelnen Element besteht, und führt diese Unterlisten so zusammen, dass eine sortierte Liste entsteht. Die Merge-Sortierung ist eine Vergleichssortierung, d. h. sie kann jede Eingabe sortieren, für die eine Kleiner-als-Beziehung definiert ist.
Die Laufzeit ist ein wichtiger Faktor, der bei der Auswahl eines Sortieralgorithmus berücksichtigt werden muss, da Effizienz oft in Bezug auf Geschwindigkeit betrachtet wird. Merge-Sort läuft in einer garantierten O( n log n )-Zeit, die deutlich schneller ist als die durchschnittlichen Laufzeiten und die Worst-Case-Laufzeiten mehrerer anderer Sortieralgorithmen.
Die Schnellsortierung, auch als Partitionsaustauschsortierung bezeichnet, ist ein effizienter Sortieralgorithmus. Er wurde 1959 vom britischen Informatiker Tony Hoare entwickelt und 1961 veröffentlicht und ist immer noch ein häufig verwendeter Algorithmus zum Sortieren. Bei guter Implementierung kann es etwa zwei- oder dreimal schneller sein als seine Hauptkonkurrenten, Merge-Sort und Heapsort.
Quicksort ist ein Teile-und-Herrsche-Algorithmus. Es funktioniert, indem es ein ‘Pivot’-Element aus dem Array auswählt und die anderen Elemente in zwei Unterarrays aufteilt, je nachdem, ob sie kleiner oder größer als der Pivot sind. Die Unterarrays werden dann rekursiv sortiert. Dies kann an Ort und Stelle erfolgen und erfordert kleine zusätzliche Speichermengen, um die Sortierung durchzuführen.
Die Schnellsortierung ist eine Vergleichssortierung, d. h. sie kann Elemente jedes Typs sortieren, für die eine Kleiner-als-Beziehung (formal eine Gesamtreihenfolge) definiert ist. Effiziente Implementierungen von Quicksort sind keine stabile Sortierung, was bedeutet, dass die relative Reihenfolge gleicher Sortierelemente nicht beibehalten wird.
Die mathematische Analyse der Schnellsortierung zeigt, dass der Algorithmus im Durchschnitt O( n log n ) Vergleiche durchführt, um n Elemente zu sortieren . Im schlimmsten Fall führt es O( n 2 ) Vergleiche durch, obwohl dieses Verhalten selten vorkommt.
Lesen Sie auch : Unterschied zwischen Array und Zeiger
VERGLEICHSGRUNDLAGE | ZUSAMMENFÜHREN, SORTIEREN | SCHNELLE SORTE |
Beschreibung | Bei der Zusammenführungssortierung wird das Array in zwei Hälften (n/2) geteilt. | Bei der Schnellsortierung wird das Array in ein beliebiges Verhältnis aufgeteilt. Es besteht kein Zwang, das Array von Elementen in gleiche Teile aufzuteilen. |
Worst-Case-Komplexität | Die Worst-Case-Komplexität der schnellen Sortierung ist O(n2), da im schlechtesten Zustand viele Vergleiche erforderlich sind. | Die Worst-Case-Komplexität beim Merge-Sort ist O(n log n). |
Arbeiten | Die Zusammenführungssortierung kann bei jeder Art von Datensätzen unabhängig von ihrer Größe (ob groß oder klein) gut funktionieren. | Die schnelle Sortierung kann bei großen Datensätzen nicht gut funktionieren. |
Sortierung | Das Merge-Sort ist ein externes Sortierverfahren, bei dem die zu sortierenden Daten nicht gleichzeitig im Speicher untergebracht werden können und ein Teil im Hilfsspeicher gehalten werden muss. | Die Schnellsortierung ist eine interne Sortiermethode, bei der die zu sortierenden Daten gleichzeitig im Hauptspeicher angepasst werden. |
Effizienz | Die Zusammenführungssortierung ist effizienter und funktioniert bei größeren Arrays oder Datensätzen schneller als die Schnellsortierung. | Quick Sort ist effizienter und arbeitet schneller als Merge Sort bei kleineren Array-Größen oder Datasets. |
Benutzen | Die Zusammenführungssortierung wird für verknüpfte Listen bevorzugt. | Schnellsortierung wird für Arrays bevorzugt. |
Zusätzlicher Speicher | Die Zusammenführungssortierung ist nicht vorhanden, da sie zusätzlichen Speicherplatz benötigt, um die Hilfsarrays zu speichern. | Die Schnellsortierung erfordert keinen zusätzlichen Speicher. |
Geschwindigkeit | Merge-Sort weist keine gute Cache-Lokalität auf, und dies macht Merge-Sort im Vergleich zu Quick-Sort langsamer. | Quick Sort weist eine gute Cache-Lokalität auf, und dies macht Quick Sort in vielen Fällen schneller als Merge-Sortierung, wie in virtuellen Speicherumgebungen. |
Stabilität | Die Zusammenführungssortierung ist stabil, da zwei Elemente mit gleichem Wert in der sortierten Ausgabe in derselben Reihenfolge erscheinen wie im unsortierten Eingabearray. | Die Schnellsortierung ist instabil; es kann jedoch stabil gemacht werden, indem einige Änderungen im Code implementiert werden. |
Fühlen Sie sich oft gestresst, verspannt und auf der Suche nach einer Lösung für Ihr…
Haben Sie sich jemals gefragt, warum Ihr Morgenkaffee anders schmeckt als der Espresso aus Ihrem…
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…