Algorithmen und Datenstrukturen
B7. Balancierte B¨ aume 1
Marcel L¨ uthi and Gabriele R¨ oger
Universit¨ at Basel
10. April 2019
Algorithmen und Datenstrukturen
10. April 2019 — B7. Balancierte B¨ aume
aaFolien basieren auf Vorlesungsfolien von Sedgewick & Wayne
https://algs4.cs.princeton.edu/lectures/33BalancedSearchTrees- 2x2.pdf
B7.1 Einf¨ uhrung B7.2 2-3 B¨ aume
B7.3 Rot-Schwarz B¨ aume
B7.1 Einf¨ uhrung
Informatiker des Tages : Donald Knuth
Donald E. Knuth
I Autor: ”The art of computer programming”
I Autor des Textsatzsystems TEX I Gewinner Turing Award (1974) und
vieler anderer Preise I Arbeit an Analyse von
Algorithmen
I Entwickelte erste Sprache f¨ ur
”Literate programming”
Knuth D. The art of computer programming 1: Fundamental algorithms 2: Seminumerical algorithms 3: Sorting and searching.
MA: Addison-Wesley. 1968.
Balancierte B¨ aume
Worst-case Average-case
Implementation suchen einf¨ ugen l¨ oschen suchen (hit) einf¨ ugen l¨ oschen
Verkettete Liste N N N N/2 N N/2
Bin¨ are suche log
2(N) N N log
2(N) N/2 N
BST N N N log
2(N) log
2(N) √
N Ziel log
2(N) log
2(N) log
2(N) log
2(N) log
2(N) log
2(N)
Frage
K¨ onnen wir eine Implementation finden, bei der alle Operationen logarithmische
Komplexit¨ at haben?
B7.2 2-3 B¨aume
2-3 B¨ aume
Wir unterscheiden zwei Knotentypen 2-Knoten 1 Schl¨ ussel, zwei Kinder 3-Knoten 2 Schl¨ ussel, drei Kinder I Wir verlangen symmetrische Ordnung
I Zus¨ atzlich muss Baum perfekt balanciert sein.
I Jeder Pfad von Wurzel zu Blatt hat dieselbe L¨ ange.
Einf¨ ugen in 2-3 Baum
Einf¨ ugen in 2-Knoten auf letzter Ebene
I Neuer Schl¨ ussel zu 2-Knoten hinzuf¨ ugen. Knoten wird zu
3-Knoten.
Einf¨ ugen in 2-3 Baum
Einf¨ ugen in 3-Knoten auf letzter Ebene
I Neuer Schl¨ ussel zu 3-Knoten hinzuf¨ ugen. Knoten wird tempor¨ ar zu 4-Knoten.
I Mittlerer Knoten in Parent einf¨ ugen.
I Falls n¨ otig, rekursiv fortsetzen.
I Falls Wurzel erreicht wird, und diese zu 4-Knoten wird, wird
diese zu zwei 2-Knoten.
Lokale Transformationen
I Teilen eines 4 Knotens ist lokale Operation I Unterb¨ aume nicht davon betroffen I Konstante Anzahl Operationen
Quelle: Abb. 3.30, Algorithmen, Wayne & Sedgewick
Globale Eigenschaften
I Invariante: Jede Operation bel¨ asst Baum perfekt balanciert.
I Ordnung der Teilb¨ aume bleibt erhalten.
Quelle: Abb. 3.31, Algorithmen, Wayne & Sedgewick
2-3 Baum: Quiz: Performance
I B¨ aume sind perfekt balanciert!
Baumh¨ ohe:
Worst Case
Best Case
Ubersicht ¨
Worst-case Average-case
Implementation suchen einf¨ ugen l¨ oschen suchen (hit) einf¨ ugen l¨ oschen
Verkettete Liste N N N N/2 N N/2
Bin¨ are suche log
2(N) N N log
2(N) N/2 N
Bin¨ arer Suchbaum N N N log
2(N) log
2(N) √
N
2-3 Baum log
2(N) log
2(N) log
2(N) log
2(N) log
2(N) log
2(N)
Problem
2-3 B¨ aume sind m¨ uhsam zu implementieren.
I Wir m¨ ussen viele Spezialf¨ alle unterscheiden.
I Code wird unelegant und fehleranf¨ allig.
I Elegante L¨ osung: Rot-Schwarz B¨ aume
B7.3 Rot-Schwarz B¨aume
Informatiker des Tages : Robert Sedgewick
Robert Sedgewick
I Professor in Princeton
I Doktorand von Donald Knuth.
I ”Erfinder” der Rot-Schwarz B¨ aume I Autor von unserem Lehrbuch.
Guibas, Leo J., and Robert Sedgewick. ”A dichromatic framework
for balanced trees”, IEEE Foundations of Computer Science, 1978.
Rot-Schwarz B¨ aume: Idee
I 2-3 Baum wird als bin¨ arer Suchbaum repr¨ asentiert I 3-Knoten werden mit speziellen ”roten” links markiert.
Quelle: Abb. 3.34, Algorithmen, Wayne & Sedgewick
Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 17 / 26
Rot-Schwarz B¨ aume - Definition
Ein Rot-Schwarz Baum ist ein bin¨ arer Suchbaum, mit der Eigenschaft:
I Rote Referenzen zeigen nach links
I Von keinem Knoten gehen zwei rote Referenzen aus I (Keine 4-Knoten im 2-3 Baum)
I Jeder Pfad von der Wurzel zu einem Blatt hat die gleiche Anzahl von schwarzen Referenzen.
I (Gleiche Tiefe im 2-3 Baum)
Repr¨ asentation in Code
I Jeder Knoten hat genau eine Referenz von Parent I 1 Feld in Knoten gen¨ ugt um Farbe speichern
c l a s s N o d e [ Key , V a l u e ]:
N o d e ( key : Key , v a l u e : V a l u e ) key : Key
v a l u e : V a l u e
l e f t : N o d e [ Key , V a l u e ]
r i g h t : N o d e [ Key , V a l u e ]
c o l o r : C o l o r # R e d or B l a c k
Suchen und ordnungsbasierte Operationen
I RB-Tree ist ein bin¨ arer Suchbaum - einfach mit Farbe I Implementation von Suche und ordnungsbasierten
Operationen bleibt gleich.
I Farbe wird ignoriert.
Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick