Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Ähnliche Dokumente
Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen I AVL-Bäume

ADS 1: Algorithmen und Datenstrukturen

Informatik II Bäume zum effizienten Information Retrieval

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

Umstrukturierung durch Rotationen

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

Algorithmen und Datenstrukturen

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Christian Rieck, Arne Schmidt

Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Algorithmen und Datenstrukturen Suchbaum

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Algorithmen und Datenstrukturen

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Datenstrukturen und Algorithmen SS07

13. Binäre Suchbäume

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

7. Sortieren Lernziele. 7. Sortieren

Übung Algorithmen und Datenstrukturen

Balancierte Suchbäume

Invarianzeigenschaft (für binären Suchbaum)

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Abschnitt 18: Effizientes Suchen in Mengen

18. Natürliche Suchbäume

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

Algorithmen und Datenstrukturen

Suchen in linearen Feldern. Datenstrukturen & Algorithmen. Laufzeitverhalten der Suchverfahren. Anzahl der Vergleiche für 10 9 Elemente

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

Programmiertechnik II

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Informatik B Sommersemester Musterlösung zur Klausur am

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Informatik II, SS 2014

9. Natürliche Suchbäume

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

G. Zachmann Clausthal University, Germany

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Kap. 3: Sortieren (3)

Wörterbücher ihre Implementierung mit AVL Bäumen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kap. 4.7 Skiplisten. 15./16. VO DAP2 SS /10. Juni 2008

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer)

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

Dynamische Mengen. Realisierungen durch Bäume

Copyright, Page 1 of 8 AVL-Baum

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.

Informatik II, SS 2018

Übung zur Vorlesung Algorithmische Geometrie

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Algorithmen und Datenstrukturen 1

Datenstrukturen & Algorithmen

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

Übung Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen. 3. Suchen

Algorithmen und Datenstrukturen

Informatik II, SS 2014

Vorlesung Datenstrukturen

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

Transkript:

Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1

Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM, O-Notation, Rekursion, Datenstrukturen Sortieren Wörterbücher und Mengen Graphen und Graphalgorithmen 2

Geordnete Mengen als Wörterbücher Wir betrachten (wie bisher) Mengen M, allerdings mit einer totalen Ordnungsrelation auf dieser Menge. versehen. Beispiel: Betrachte M = Z mit der üblichen Ordnung. Die Elemente von M können wir uns (zunächst) in einem Feld A[1.. M ] abgespeichert denken, und zwar ordnungserhaltend, d.h.: i < j gdw. A[i] < A[j]. (Wir können die Forderung auch noch abschwächen, falls wir zulassen wollen, dass zwei Elemente des Feldes gleich sein dürfen. Versuchen Sie, für diesen Fall ordnungserhaltend zu definieren.) 3

Wörterbücher: Mengen mit eingeschränkten Operationen Nachschlagen (Lookup), also die Elementanfrage Einfügen (Insert) Löschen (Delete) eines einzelnen Elementes (musste gemäß bisheriger Spezifikation durch andere Mengenoperationen nachgebildet werden (wie genau?)) Initialisieren (init/clear) Wir wissen bereits: Das Suchen in geordneten Feldern geht schnell (logarithmischer Zeitaufwand VL6). Allerdings ist das Einfügen teuer (Linearzeit), da im Schnitt die Hälfte der Feldelemente verschoben werden muss. Für nicht (oder nur sehr selten) zu verändernde geordnete Mengen ist die Darstellung durch ordnungserhaltende Felder aber nicht schlecht. 4

Geordnete Wörterbücher : Rekursion versus Induktion Algorithm 1 Allgemeine Suche Input(s): a sorted array A : Z[1..n], an element x Output(s): if found: position i such that x = A[i]; NO otherwise α 1; ω n; i some number in [α..ω] while (x A[i]) (ω > α) do if x < A[i] then ω i 1 else α i + 1 i some number in [α..ω] end while return i (if A[i] = x); NO otherwise Algorithm 2 Allgemeine Suche rekursiv SR Input(s): a sorted array A : Z[1..n], an element x Output(s): if found: position i such that x = A[i]; NO otherwise i some number in [1..n] if (x < A[i]) (i > 1) then return rescale SR(A[1..i 1], x) else if (x > A[i]) (i < n) then return rescale SR(A[i + 1..n], x) else return i (if A[i] = x); NO otherwise 5

Interpolationssuche am Beispiel: Wir suchen y = 7. x = 1 + 7 2 37 2 (9 1) 2, 15 2 ist neuer Teilungspunkt Satz: Sind die Zahlen im Feld A[1],..., A[n] gleichverteilt unabhängig aus dem Intervall (l, r) gezogen, so beträgt die Zugriffszeit für Interpolationssuche im mittleren Fall O(log log n). 6

Exkurs: Wahrscheinlichkeitsrechnung Annahme: x 1,..., x n werden unabhängig gemäß Gleichverteilung auf Intervall (x 0, x n+1 ) gezogen. x (x 0, x n+1 ) ist der Vergleichswert. p = x x 0 x n+1 x Wahrsch., dass bel. x 0 j < x gilt. Wahrsch., dass genau k der n Schlüssel kleiner als x sind, ist gleich ( ) n p k k (1 p) n k Dies ist die sog. Binomialverteilung, siehe VL 17 / 18 von DSL. Betrachte ZV X, die die # der x j angibt, die kleiner als x sind. Aus DSL wissen wir: µ = pn ist der Erwartungswert E[X]. Für die Varianz gilt: E[(X E[X]) 2 ] = σ 2 = p(1 p)n. Tschebyscheffsche Ungleichung P[ X µ t] σ2 t 2 7

Exkurs: Das Basler Problem Beim Basler Problem handelt es sich um die Frage nach der Summe der reziproken Quadratzahlen: 1 1 2 + 1 2 2 + 1 3 2 + 1 4 2 + = 1 + 1 4 + 1 9 + 1 16 + 1644 fragte sich der Italiener Pietro Mengoli, ob diese Summe konvergiere, und wenn ja, gegen welchen Wert. Er kam zu keiner Antwort. Die Basler Bernoulli-Dynastie bemühte sich auch vergeblich, 1735 fand Euler (damals in Basel) die Lösung und veröffentlichte sie in seinem Werk De Summis Serierum Reciprocarum. n=1 1 n 2 = π2 6 Die Kreiszahl π taucht auf, da die Formel, gemäß Euler, mit der Quadratur des Kreises zusammenhängt. Die Riemannsche ζ-funktion birgt noch viele Geheimnisse. 8

Schnellere Suchzugriffe in Binär(such)bäumen Bereits erwähnt: Interpolationssuche mit mittlerer Zugriffszeit O(log log n). Analyse ist sehr aufwändig (auch nicht in Lehrtexten enthalten). Alternativ hier: quadratische Binärsuche Grundidee (jeweils): Beschleunige Hinabsteigen im Suchbaum. Konzeptuell kann man sich die (seltsam anmutende) Laufzeit erklären durch Binärsuche auf Zugriffspfad(en). Kann man aber rasch einen Knoten ausfindig machen, der auf halben Wege auf dem richtigen Suchpfad liegt? Beobachte: Es gibt 2 1 2 log 2 (n) = n viele Knoten auf halbem Wege. Diese sind in der Darstellung durch ein geordnetes Feld n Positionen voneinander entfernt. Zu zeigen: Lineare Suche im Abstand n hat im Mittel konstanten Zeitaufwand. In O(1) kann man die Mitte des Suchpfades bestimmen. Aufwand O(log log(n)). 9

Algorithm 3 Quadratische binäre Suche QBS Input(s): a sorted array A : Z[1..n], an element x Output(s): if found: position i such that x = A[i]; NO otherwise j 0; i 1 + x x 0 x n+1 x 0 n while (i + j n n) (x > A[ i + j n ]) do j + +; end while if j > 0 then return rescaled QBS(A[ i + (j 1) n + 1.. i + j n ], x) {Downwards search (from i on) analogously} if j > 0 then return rescaled QBS(A[ i (j 1) n + 1.. i j n ], x) else return i (if A[i] = x); NO otherwise Erinnerung: Rekursive Variante der allgemeinen Suche in geordneten Mengen ähnlich (bis auf kompliziertere Bestimmung vom Teilungspunkt i). 10

C: Mittlere # Vergleiche, um Teilfeld der Größe n zu ermitteln p j : Wahrsch., dass j oder mehr Vergleiche benötigt werden. Trick aus VL11 C = j 1 j(p j p j+1 ) = j 1 p j. Aufgabe: Bestimmung der p j. Klar: p 1 = p 2 = 1 (mind. zwei Vergleiche sind nötig) ρ(x): Rang von x in A, d.h., {x l x l < x}. ρ(x) ist ZV. Werden j > 3 Vergleiche benötigt, gilt: ρ(x) i (j 2) n. p j P[ ρ(x) i (j 2) n]. Die mittlere Anzahl der Schlüssel, die kleiner als x sind, ist der mittlere Rang von x, ist gleich pn gemäß obiger Überlegungen zur Binomialverteilung (in denen ρ noch X genannt wurde). Aus der Tschebyscheffschen Ungleichung folgt: p j p(1 p)n ((j 2) n) 2 = p(1 p) (j 2) 2 1 4(j 2) 2 11

Die letzte Ungleichung folgt wegen p(1 p) 0, 25, falls 0 p 1. (Weitere Eigenschaften der Entropiefunktion siehe Vorl. zu Informationstheorie) Basler Problem liefert: C 2 + 1 j 3 4(j 2) 2 = 2 + π2 24 2, 4 Ist T(n) die mittlere Anzahl der Vergleiche, die bei der Suche nach x in einem Feld mit n zufälligen Schlüsseln (gezogen aus (x 0, x n+1 )), so gilt: T(n) C + T( n), denn die Teilfelder der Größe n sind wiederum zufällig. Mit T(1) 1 und T(2) 2 folgt leicht per Induktion: T(n) 2 + C log log n für n 2. Satz: Die mittleren Such-Kosten von QBS sind O(log log n). Hinweis: Im schlechtesten Fall sind die Such-Kosten bei QBS O( n). Mit weiteren Tricks lässt sich aber das Verhalten im schlimmsten Fall auf O(log n) verbessern.

Halten wir fest... Binäre Suchbäume sind im Mittel gar nicht so schlecht. Das Suchen in ihnne kann (im Mittel) nochmals beschleunigt werden mit Hilfe von Interpolationsideen. Ist es möglich, auch im schlechtesten Fall alle Baum- Operationen höchstens in logarithmischer Zeit durchzuführen? Das würde Zweifel beseitigen, es könnte auch mal langsam gehen. 12

AVL-Bäume Adelson-Velskij/Landis 1962 Ein AVL-Baum ist ein 1-ausgeglichener Suchbaum, d.h., es handelt sich um einen binären Suchbaum, in dem sich für jeden inneren Knoten die Höhen der beiden anhängenden Teilbäume höchstens um Eins unterscheiden. Das Suchen nach einem Element funktioniert weiter wie bei normalen Suchbäumen (die Suchbaumeigenschaft ist ja erfüllt). Beim Einfügen und Löschen muss evtl. durch nachträgliches Rebalancieren die 1-Ausgeglichenheit wiederhergestellt werden. Das wollen wir zunächst beobachten in: http://webpages.ull.es/users/ jriera/docencia/avl/avl%20tree%20applet.htm. 13

AVL-Bäume: Balance Jedem Knoten können wir als Balancewert die Differenz der Höhen des rechten und linken darunterhängenden Teilbaumes zuordnen: 14

AVL-Bäume: Einfügen Wie üblich wird zunächst nach der Einfügestelle im Suchbaum gefahndet. Der auf diese Weise beschriebene Suchpfad wird nach dem Einfügen rückwärts durchlaufen, um nach Knoten zu schauen, die aus der Balance geraten sind. Wird solch ein Knoten x mit einem Balancewert von 2 oder ( 2) gefunden, so muss rebalanciert werden. Dies geschieht durch Umordnen des an x hängenden Teilbaums, was aber allenfalls die Balancewerte der Enkelknoten beeinflusst, sodass kein erneutes Absteigen nötig ist. Dadurch kann sich die Höhe des an x hängenden Teilbaumes nicht verringern. Deshalb müssen wir beim Einfügen nicht weiter bis zur Wurzel hochsteigen, um möglicherweise weitere Rebalancierungen durchzuführen. O.E. diskutieren wir ein x mit Balancewert 2 auf den nächsten Folien. 15

AVL-Bäume: Einfügen O.E. diskutieren wir ein x mit Balancewert 2. Sei y das rechte Kind von x. 1. Fall: Der rechte Teilbaum von y ist zu groß (dort Einfügestelle). Der linke Teilbaum von y ist kleiner als der rechte, da sonst schon vor dem Einfügen Imbalance bei x bestanden hätte. Lösen durch einfache Rotation. Beachte: Suchbaumeigenschaft bleibt erhalten (Inorder-Durchlauf zum Prüfen). 16

AVL-Bäume: Einfügen O.E. diskutieren wir ein x mit Balancewert 2. Sei z (!) das rechte Kind von x. 2. Fall: Der linke Teilbaum von z ist zu groß (dort Einfügestelle). Eine einfache Rotation hülfe hier nichts; stattdessen werden weiter das linke Kind y von z (mit seinen Teilbäumen) mit einbezogen in die Doppelrotation. 2a Fall: Der rechte Teilbaum von y ist zu groß (dort Einfügestelle). Der linke Teilbaum von y ist kleiner als der rechte (s.o.) 2b Fall: Der linke Teilbaum von y ist zu groß geht genauso (!) 17

AVL-Bäume: Löschen Wie üblich wird zunächst nach dem zu löschenden Element im Suchbaum gefahndet. Der auf diese Weise beschriebene Suchpfad wird nach dem Einfügen rückwärts durchlaufen, um nach Knoten zu schauen, die aus der Balance geraten sind. Betrachten wir o.e. einen Knoten x, in dessen linken Teilbaum wir einen Knoten löschen, was zu einer Nicht-1-Ausgeglichenheit führt. Sei y das rechte Kind von x. Ist der linke Teilbaum von y nicht höher als der rechte, so hilft einfache Rotation. Ist der linke Teilbaum von y höher als der rechte, führt dies zu einer Doppelrotation, wobei wiederum die Enkel von x zu diskutieren sind. (Mehr an der Tafel oder im Buch von Güting, S. 125) Das Studieren von http://webpages.ull.es/users/jriera/docencia/ AVL/AVL%20tree%20applet.htm sei zum weiteren Verständnis empfohlen. 18

AVL-Bäume: Löschen mit einfacher Rotation Warum muss man den Suchpfad evtl. ganz zurückverfolgen? Offenbar entstand das Bild durch Löschen im linken Teilbaum. Außer die im Bild gezeigte gibt es jetzt noch die Situation, dass t 2 und t 3 gleich hoch sind. Dann ist nach der Rotation der abgebildete Teilbaum gleich hoch wie vor dem Löschen, sodass nicht weiter oben im Baum nach Balancewerten von ±2 gesucht werden muss. In der abgebildeten Lage jedoch verringert sich die Höhe gegenüber der vor dem Löschen, was zu neuen Balancewerten ±2 weiter oben im Baum führen kann. Entsprechend kann man die Doppelrotation diskutieren. 19

AVL-Bäume: Was bringt es? Offenbar benötigt jede Operation O(h) Aufwand, wobei h die Höhe des AVL- Baumes ist. Wie ist denn die maximale Höhe eines AVL-Baumes? Dazu betrachten wir umgekehrt N(h), die minimale Anzahl von Knoten in einem AVL-Baum der Höhe h. Die Rekursionsgleichung legt einen Zusammenhang mit den Fibonaccizahlen nahe. 20

Fibonacci-Bäume sind ein gebräuchlicher Name für Bäume T h mit N(h) Knoten und Höhe h, die rekursiv aus einer Wurzel sowie links einem T h 1 und rechts einem T h 2 aufgebaut sind. Wie soeben überlegt, sind Fibonacci-Bäume extremale AVL-Bäume. Erinnerung: Fibonacci-Zahlen: f n = f n 1 + f n 2 ; Sonderfälle: f(0) = 0 und 1.6181... die Zahl des Golde- f(1) = 1, siehe VL14 DSL. Bekannt: f n = φn (1 φ) n, wobei φ = 1+ 5 5 2 nen Schnitts ist. Ein weiterer Zusammenhang: lim n Lemma: N(h) = f h+3 1 f n f n 1 = φ. Beweis: Induktion; im IS: N(k + 1) = 1 + N(k) + N(k 1) = 1 + f k+3 1 + f k 4 1 = f k 2 1. Hinweis: f h ist gerade die Blattanzahl von T h. 21

Fibonacci-Bäume und AVL-Bäume Also: Ein AVL-Baum der Höhe h hat mindestens f h+3 1 Knoten. Ein AVL-Baum mit n Knoten hat höchstens die Höhe h, bestimmt durch: N(h) n N(h + 1). 1 φ h+3 2 1 ( φ h+3 (1 φ) h+3) n + 1 5 5 Logarithmieren und Umsortieren liefert: h log φ (n) + c für eine Konstante c, d.h., h 1.4405 log 2 (n) + c. Lemma: Ein AVL-Baum mit n Knoten hat logarithmische Höhe; genauer ist er höchstens um 44% höher als irgendein Binärbaum mit n Knoten. Satz: Alle (wichtigen) Operationen lassen sich auf AVL-Bäumen in Laufzeit O(log(n)) realisieren. 22

Höhenbalancierte Bäume Wir haben mit AVL-Bäumen ein Beispiel für sogenannte höhenbalancierte Bäume kennengelernt. Dies ist nicht das einzige Balance-Kriterium, wie wir in der nächsten VL sehen werden. Es gibt viele weitere höhenbalancierte Baum-Modelle, z.b. Rot-Schwarz-Bäume. Diese werden (gemeinsam mit AVL) in der folgenden Semesterarbeit (an der Uni Leipzig) vorgestellt: http://leechuck.de/ginfin/baum1/index.html (auf den Seiten findet sich übrigens auch JAVA-Quellcode hierzu sowie ein nettes JAVA-Applet zu Mergesort) Wie im Buch von Sedgewick ausgeführt, gestatten Rot-Schwarz-Bäume einen Top-Down-Ansatz zur Rebalancierung, was insbesondere für ihre parallele Ausführung erhebliche Vorteile bringt. 23