Lecture 11 Flashcards
(20 cards)
Warum kann kein vergleichsbasierter Sortieralgo schneller als Θ(n log n) sein?
Entscheidungsbaum hat ≥ n! Blätter ⇒ Höhe ≥ log₂(n!) ≥ n log n − O(n).
Welches Modell nutzt der Beweis der Unterschranke?
Binärer Entscheidungsbaum, jeder Knoten = Schlüsselvergleich, jedes Blatt = Permutation.
Wie kann man dennoch schneller als n log n sortieren?
Nur durch Ausnutzen strukturierter Schlüssel (Ziffern/Zahlen) – nicht rein durch Vergleiche.
Prinzip von Bucket-Sort (kSort)?
Verteile jedes Element in Bucket key(e); konkateniere Buckets in Schlüsselfolge.
Laufzeit & Speicher von Bucket-Sort?
Θ(n + K); Speicher Θ(n + K). Gut, falls K ∈ o(n log n).
Warum muss Bucket-Sort stabil sein?
Nur dann bleibt relatives Ordering gleicher Schlüssel erhalten – wichtig für RadixSort.
Annahme für RadixSort-Schlüssel?
Zahlen 0 … Kᵈ−1, dargestellt durch d Ziffern im Basis-K-System.
RadixSort-Ablauf (LSB-Variante)?
d-mal von niedrigster zur höchsten Ziffer stabil mit kSort sortieren.
Wieso funktioniert RadixSort nur mit stabilem „innerem“ Sort?
Nach Sortieren über Stelle i müssen Elemente mit gleicher i-ter Ziffer sortiert nach Stellen <i bleiben.
Komplexität von RadixSort?
Θ(d (n + K)).
Was ist das Rang-Selektionsproblem?
Finde das k-kleinste Element einer Menge von n Elementen.
Naive Lösung & Laufzeit für Rang-Selektion?
Sortieren (Θ(n log n)) und Element k ausgeben.
Grundidee QuickSelect?
Wie QuickSort, aber nach Partition nur in die Seite rekursieren, die k enthält.
Partitioniert QuickSelect das Feld vollständig?
Ja, in drei Teile: a (< p), b (= p), c (> p); nur relevanter Teil wird weiter betrachtet.
Definition eines „guten“ Pivots im Beweis?
Weder a noch c enthält > 2/3 der Elemente → Pivot liegt im mittleren Drittel.
Wahrscheinlichkeit für einen guten Pivot bei Zufallswahl?
p = 1/3.
Worst-Case-Laufzeit von QuickSelect?
O(n²) (wenn Pivot immer schlechteste Wahl).
QuickSelect-Pseudocode: Welche Schlüsselschritte?
Zufalls-Pivot wählen → partitionieren → je nach k links/rechts rekursieren oder return Pivot.
Wozu taugt QuickSelect praktisch?
Median-Berechnung, k-te Statistik, Pivot-Wahl für QuickSort, Load-Balancing
Wann ist Bucket-Sort ungeeignet?
Wenn K ≫ n log n (zu viel Speicher & Zeit).