Unterschiede & Gemeinsamkeiten

Beide Verfahren beginnen mit der gleichen Ausgangsfolge, allerdings stimmt der jeweils produzierte Heap logischerweise nicht mit dem anderem überein. Denn: beim Bottom-Up-Verfahren wird die Heap-Eigenschaft erst am Ende des Einfügevorgangs hergestellt, wohingegen beim Top-Down-Verfahren jeweils nach dem Einfügen einen neuen Elementes die Heap-Eigenschaft wiederhergestellt wird.
Vom Zeitaufwand her sind sich beide Verfahren sehr ähnlich. Allerdings ist das Top-Down-Verfahren etwas langsamer.

Genauer: Beide benötigen die gleiche Zeit für die Eintragung der Elemente in den Heap. Das Top-Down-Verfahren benötigt aber mehr Sortierschritte, da nach jedem neuen Element wieder die Heap-Eigenschaft hergestellt wird.
Aus diesem Grund ist die Bottom-Up-Methode beim Heapsort als eine Verbesserung des Original-Algorithmus zu verstehen.
Die einzelnen Sortierschritte der beiden Verfahren sind hingegen gleich aufwendig:

Beide Algorithmen operieren entlang eines Pfades (path)

  • von der Wurzel zum unteren Ende des Heaps beim Top-Down-Verfahren
  • von den Blättern zur Wurzel beim Bottom-Up-Verfahren
Daher kommt auch die Namensgebung.

Größe des Heaps

Es gibt etwa n/2 Knoten auf der untersten Ebene (sofern diese keine Nachfolger mehr haben), n/4 Knoten mit direkten Nachfolgern auf der untersten Ebene, n/8 Knoten mit zwei Nachfolgern auf der untersten Ebene usw.
Jede Ebene besitzt halb so viele Knoten wie die nächste, woraus folgt, daß höchstens log(n) Ebenen existieren können.

Anfang

Zurück