Algorithmen und Datenstrukturen
B1. Heap und Heapsort - Eine informelle Einf¨uhrung
Marcel L¨uthi and Gabriele R¨oger
Universit¨at Basel
31.03.2021
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 1 / 8
Algorithmen und Datenstrukturen
31.03.2021 — B1. Heap und Heapsort - Eine informelle Einf¨uhrung
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 2 / 8
Datenstruktur Heap
Heap
Ein (bin¨arer) min-Heap ist ein vollst¨andiger bin¨arer Baum, bei dem gilt, dass der Wert in jedem Knoten kleiner gleich dem Wert seiner beiden Kindern (sofern vorhanden) ist.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 3 / 8
Aufbauen eines Heaps
Elemente: 7, 13, 5, 8, 1, 2
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 4 / 8
Entfernen des kleinsten Elements vom Heap
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 5 / 8
Beispiel: Sortieren mit Heaps (Ausblick)
Idee des Algorithmus:
I Baue Heap aus unsortierter Liste I Solange Elemente im Heap sind
I Entferne kleinstes Element (Wurzel) I Schreibe Element in (neue) Liste I Stelle Heapbedingung wieder her
I Neue Liste enth¨alt Elemente in sortierter Reihenfolge Heapsort: Gleiche Idee, aber inplace.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 6 / 8
Sortieren mit Heaps
Offene Fragen:
I Wie schnell k¨onnen wir Heap aus n unsortierten Elementen aufbauen?
I Antwort:Naiv: InO(nlog2n) Operationen. Trickreich: InO(n) I Wie schnell k¨onnen wir Heapbedingung nach Entfernen
wiederherstellen?
I Antwort:InO(log2n) Operationen
I Wie gross ist die gesamte Laufzeitkomplexit¨at I Antwort:InO(nlog2n) Operationen
Komplexit¨at verschoben von Algorithmus nach Datenstruktur
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 7 / 8
Zusammenfassung
I Algorithmen und Datenstrukturen arbeiten zusammen I (Teil der) Komplexit¨at kann verschoben werden I Datenstrukturen k¨onnen meist visualisiert/graphisch
verstanden werden
I Oft gilt: Gute Datenstrukturen ⇒ Einfach(ere) Programme Details von Heapsort folgen ...
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 31.03.2021 8 / 8