Developer Toolbox

Heapsort

Ordnet die Liste als Heap an, also als Baum, in dem jeder Wert größer ist als seine Kinder. Dann bringt es immer wieder den größten Wert ans Ende.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(1)
  • nein
  • ja
  • wird verglichen
  • wird verschoben
  • am endgültigen Platz
0 / 299 Schritte
Vergleiche Tauschvorgä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 eine umgekehrte Liste. Der Heap entsteht fast ohne Tausch, dann bringt jede Runde den größten Wert ans Ende.

So funktioniert es

Der Heap steckt in der Liste selbst: Der Wert an Platz i hat seine Kinder an den Plätzen 2i+1 und 2i+2. Der größte Wert steht immer vorne. Er wird ans Ende getauscht, dann wird der Heap um eins kleiner und repariert. So wächst der sortierte Teil von rechts.

Wann es sich eignet

Wenn es auch im schlechtesten Fall schnell bleiben soll und kein Zusatzspeicher da ist, etwa auf kleinen Geräten. Im Durchschnitt ist es langsamer als Quicksort. Deshalb dient es oft als Ersatz, falls Quicksort zu langsam wird.