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