• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen B1. Heap und Heapsort - Eine informelle Einf¨uhrung Marcel L¨uthi and Gabriele R¨oger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen B1. Heap und Heapsort - Eine informelle Einf¨uhrung Marcel L¨uthi and Gabriele R¨oger"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

B1. Heap und Heapsort - Eine informelle Einf¨uhrung

Marcel L¨uthi and Gabriele R¨oger

Universit¨at Basel

31.03.2021

(2)

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.

(3)

Aufbauen eines Heaps

Elemente: 7, 13, 5, 8, 1, 2

(4)

Entfernen des kleinsten Elements vom Heap

(5)

Beispiel: Sortieren mit Heaps (Ausblick)

Idee des Algorithmus:

Baue Heap aus unsortierter Liste Solange Elemente im Heap sind

Entferne kleinstes Element (Wurzel) Schreibe Element in (neue) Liste Stelle Heapbedingung wieder her

Neue Liste enth¨alt Elemente in sortierter Reihenfolge Heapsort: Gleiche Idee, aber inplace.

(6)

Sortieren mit Heaps

Offene Fragen:

Wie schnell k¨onnen wir Heap ausn unsortierten Elementen aufbauen?

Antwort: Naiv: InO(nlog2n) Operationen. Trickreich: InO(n) Wie schnell k¨onnen wir Heapbedingung nach Entfernen wiederherstellen?

Antwort: InO(log2n) Operationen

Wie gross ist die gesamte Laufzeitkomplexit¨at Antwort: InO(nlog2n) Operationen

Komplexit¨at verschoben von Algorithmus nach Datenstruktur

(7)

Sortieren mit Heaps

Offene Fragen:

Wie schnell k¨onnen wir Heap ausn unsortierten Elementen aufbauen?

Antwort:Naiv: In O(nlog2n) Operationen. Trickreich: InO(n) Wie schnell k¨onnen wir Heapbedingung nach Entfernen wiederherstellen?

Antwort: InO(log2n) Operationen

Wie gross ist die gesamte Laufzeitkomplexit¨at Antwort: InO(nlog2n) Operationen

Komplexit¨at verschoben von Algorithmus nach Datenstruktur

(8)

Zusammenfassung

Algorithmen und Datenstrukturen arbeiten zusammen (Teil der) Komplexit¨at kann verschoben werden Datenstrukturen k¨onnen meist visualisiert/graphisch verstanden werden

Oft gilt: Gute Datenstrukturen⇒ Einfach(ere) Programme Details von Heapsort folgen ...

Referenzen

ÄHNLICHE DOKUMENTE

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)

Ein bin¨ arer Baum / Array ist Heap geordnet, wenn der Schl¨ ussel in jedem Knoten gr¨ osser gleich dem Schl¨ ussel seiner beiden Kindern (sofern vorhanden) ist.. Quelle:

Fall 1: k < Schl¨ ussel in Knoten Gehe nach links Fall 2: k > Schl¨ ussel in Knoten. Gehe nach rechts Fall 3: k = Schl¨ ussel

Datenstruktur Verkettete Liste von Schl¨ ussel/Werte-Paaren Suchen Elemente durchlaufen bis gefunden oder Listenende Einf¨ ugen Element in Liste.. Wert

Elemente werden in Array gespeichert, wobei Position durch Schl¨ ussel bestimmt ist.. Wichtigstes Werkzeug: Hashfunktion Berechnet Index aus

In einer auf Verkettung basierenden Hashtabelle mit M Listen und N Schl¨ usseln ist die Anzahl der Vergleiche (Gleichheitstests) f¨ ur Einf¨ ugungen und erfolglose Suchen ∼

Bestimmte Grundbausteine ben¨ otigt man immer wieder bei Programmierprojekten, z.B. Sortierverfahren

Eine sehr kurze Einf¨ uhrung in Python Kurzer Sprach¨ uberblick. A2.2 Kurzer