Developer Toolbox

Mergesort

Teilt die Liste in zwei Hälften, sortiert jede Hälfte und führt die beiden sortierten Hälften dann zu einer sortierten Liste zusammen.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • ja
  • nein
  • wird verglichen
  • wird verschoben
  • am endgültigen Platz
0 / 263 Schritte

↓ teilen ↓ mischen Mischvorgänge: 0 von 23

Vergleiche Schreibvorgänge

Auf Abspielen drücken: Die Linien zeigen, wie die Kosten wachsen

Auf Abspielen drücken oder Schritt für Schritt durchgehen.

Leertaste: abspielen oder pausieren. Pfeiltasten links/rechts: Schritt. Pos1 und Ende: springen.

Probieren Sie es aus: Wählen Sie wenige unterschiedliche Werte. Bei gleichen Werten wird der aus der linken Hälfte zuerst genommen, so bleibt die Reihenfolge.

So funktioniert es

Die Liste wird so lange geteilt, bis jedes Stück nur noch einen Wert hat. Ein einzelner Wert ist schon sortiert. Dann werden die Stücke paarweise zusammengeführt: Immer wieder wird der kleinere der beiden vordersten Werte genommen. Die angehobene Reihe in der Animation ist der Zusatzspeicher dafür.

Wann es sich eignet

Wenn es auch im schlechtesten Fall schnell bleiben soll und gleiche Werte ihre Reihenfolge behalten müssen. Python und Java nutzen beide eine Variante von Mergesort. Der Nachteil ist der Zusatzspeicher.