Lecture 13 Flashcards
(23 cards)
Welche Laufzeiten liefert ein binärer Min-Heap für die vier Grundoperationen?
build O(n), insert O(log n), min O(1), deleteMin O(log n).
Definiere die Form-Invariante eines binären Heaps.
„Fast vollständiger“ Binärbaum: alle Ebenen voll außer evtl. letzter; letzte linksbündig gefüllt.
Definiere die Heap-Invariante für einen Min-Heap.
key(parent) ≤ key(child) für jeden Knoten ≠ Wurzel.
Schritte von deleteMin im Heap?
(1) Root sichern, (2) letztes Element nach oben, (3) siftDown. Laufzeit O(log n).
Schritte von insert im Heap?
(1) Element ans Ende, (2) siftUp bis Heap-Eigenschaft gilt. O(log n).
Was macht decreaseKey(v,k) und wie teuer ist es?
Setzt key(v)=k (k kleiner) und siftUp; O(log n).
Welche Idee steckt hinter HeapSort?
SelectionSort verbessern: deleteMin wiederholt aus Min-Heap → sortierte Folge.
Ablauf von HeapSort in drei Stichpunkten
build → für i=n−1…1: swap(0,i), Heap-size–, siftDown.
Ist HeapSort stabil? In-place?
Nicht stabil, aber in-place.
Welche Sortierrichtung erzeugt Min-Heap-HeapSort standardmäßig?
Absteigend; aufsteigend durch Max-Heap.
Zähle alle fünf Sortieralgorithmen der Übersichtsfolie mit wesentlichen Eigenschaften auf.
SelectionSort O(n²)/in-place/–;
InsertionSort O(n²)/stabil;
QuickSort avg O(n log n), worst O(n²)/in-place; MergeSort O(n log n)/stabil/O(n) extra;
HeapSort O(n log n)/in-place/–.
Rekursive Definition eines Binomial-Baums Rang r.
Wurzel, Kinder sind Binomial-Bäume Rang r−1…0 in dieser Reihenfolge
Anzahl Knoten und Tiefe eines Binomial-Baums Rang r
2ʳ Knoten, Tiefe ≤ r.
Wie viele Knoten hat Tiefe ℓ im Rang-r-Baum?
C(r, ℓ) (Binomialkoeffizient).
Erhaltung der Heap-Invariante beim Merge zweier Binomial-Bäume Rang r−1?
Wurzel mit größerem Key wird Kind der kleineren → neuer Baum Rang r erfüllt Min-Heap.
Zerlegung beim Entfernen der Wurzel eines Rang-r-Baums?
Liefert Binomial-Bäume der Ränge r−1,…,0.
Definition eines Binomial-Heaps (zwei Invarianten).
(1) Jeder Baum erfüllt Min-Heap-Eigenschaft, (2) für jeden Rang ≤⌊log₂ n⌋ existiert höchstens ein Baum.
Warum genügen ⌊log₂ n⌋+1 Bäume für n Elemente?
Binärdarstellung von n bestimmt eindeutig vorhandene Ränge.
Wie funktioniert merge(H₁,H₂) zweier Binomial-Heaps?
Binäraddition ihrer Baumlisten: Bäume gleichen Rangs werden paarweise gemerged. O(log n)
Kosten von insert(e) im Binomial-Heap.
Merge mit Einzelbaum Rang 0 ⇒ O(log n).
Schrittfolge von deleteMin() im Binomial-Heap.
Entferne min-Baumwurzel (Rang r) → er zerfällt in Bäume r−1…0 → merge mit Rest. O(log n).
Warum ist min() in Binomial-Heaps O(1)?
Separater Zeiger auf Wurzel mit kleinstem Key.
Welche Operation unterstützt Binomial-Heap effizienter als ein binärer Heap?
merge zweier Heaps (O(log n) vs. O(n)).