[Type the document title] 1. Binäre Suchbäume Geordnete Menge von Suchschlüsseln. Linkes Kind der kleinere Suchschlüssel. Rechtes Kind der größere Suchschlüssel. Baum kann zu einer linearen Liste ausarten. 2. Splay Trees a. Self adjustment Nach jeder Operation steht der bearbeitete Knoten in der Wurzel. Die Tiefe eines Pfads halbiert sich im Schnitt bei Ausführung einer Operation darauf. Oft benutzte Knoten sind näher an der Wurzel. b. Anwendungsbeispiel Compiler: Ein Splay-Baum würde oft benutzte Variablen nah an der Wurzel halten und ggf. die Liste von Variablen zu einem Baum formen. c. Rotationen I. Zig / Zag II. ZigZig/ZagZag III. ZigZag/ZagZig d. Operationen I. Splay/Suche Beförderung des gesuchten Knotens in die Wurzel. II. Einfügen Beförderung des Vorgängerknotens in die Wurzel mit Einfügen des aktuellen Knotens als neue Wurzel. III. Lösche Beförderung des zu löschenden Knotens in die Wurzel und Löschung. Es entstehen zwei Bäume, hänge dem rechten Baum als rechtes Kind größtes Element des linken Baums. 1 Projdakov Benjamin [Type the document title] 3. Amortisierte Analyse a. Einführung/Potenti al-Methode: Verrechne tatsächliche Kosten mit Strukturveränderung zu Ausgleichskosten. ๐๐๐ = ๐ก๐๐ + ๐๐๐๐ค − ๐๐๐๐๐๐๐ b. Hilfssatz Bedingt (๐, ๐ > 0, ๐ + ๐ ≤ ๐) Abschätzung der Summe zweier Logarithmen. √๐๐ ≤ ๐+๐ 2 log 2 ๐ + log 2 ๐ ≤ 2 log 2 ๐ − 2 c. Definitionen Einführung der Komponenten des Modells: Rang von p: ๐(๐) = log 2 ๐ (๐) Potential von b: ๐(๐) = ∑๐(๐) Größe von p : ๐ (๐) = ∑๐ค(๐ฅ) Gewicht von x : ๐ค(๐ฅ) > 0 d. Zugriffslemma Jede Splay-Operation hat als amortisierte Laufzeit maximal: 3(๐(๐) − ๐(๐ฅ)) + 1 Ableitung von Regeln aus den Zustandsänderungen. I. II. III. 2 Zig/Zag ZigZag/ZagZig ZigZig/ZagZag Projdakov Benjamin [Type the document title] IV. Splay Treppensumme von : = 3 ( ( ) ( )) ๐ ๐ − ๐ ๐ฅ + 1 e. Satz 1: Splay-Baum Amortisiere Laufzeit für Splay-Bäume. „Für einen anfangs leeren Baum benötigt das Ausführen von m Wörterbuchoperationen mit höchsten N Einfüge-Operationen maximal O(m log N).“ Wörterbuchoperationen brauchen eine konstante Anzahl von Splay-Operationen + eine konstante Anzahl Einzeloperationen. Für diesen Beweis setzen wir alle Gewichte auf 1 . Laufzeit: ๐๐ ๐๐๐๐ฆ ∈ ๐(log(๐)) ⇒ ๐ ๐๐๐๐๐๐ก๐๐๐๐๐ ∈ ๐(m log(๐)) f. Satz 2: Binärer Baum mit Splay Laufzeit auf Suchbäumen „Für einen binären Suchbaum mit N Knoten, haben m Suchoperationen (über Splay) einen Aufwand von maximal O((N + m) log (N) + m).“ Eine Suchoperation besteht aus einer Splay-Operation und Rückgabe des neuen Wurzelknotens. 3 Projdakov Benjamin [Type the document title] Für diesen Beweis setzen wir alle Gewichte auf 1 . Wir suchen die tatsächlichen Kosten, über: ๐ก๐๐ = ๐๐๐ + ๐๐๐๐๐๐๐ − ๐๐๐๐ค Laufzeit: ∈ ๐((๐ + ๐) log 2 ๐ + ๐) 4 Projdakov Benjamin