Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorlesung AVL-Bäume/Algorithmen-

Ähnliche Präsentationen


Präsentation zum Thema: "Vorlesung AVL-Bäume/Algorithmen-"—  Präsentation transkript:

1 Vorlesung 10 16.12.99 -AVL-Bäume/Algorithmen-
Diskrete Mathematik I Vorlesung 10 -AVL-Bäume/Algorithmen-

2 Übersicht Vollständige Bäume Minimale Knotenanzahl von AVL-Bäumen
Fibonacci-Zahlen Maximale Höhe von AVL-Bäumen Das Wichtigste zu AVL in Kürze 4 Fälle im Überblick „Überleitung“ Güte von Algorithmen Groß-Oh-Notation Inklusion Komplexität - Beispiele

3 Vollständige Bäume Ein binärer Baum heißt vollständig, wenn alle Blätter die gleiche Höhe haben. Ein vollständiger binärer Baum gegebener Höhe enthält die maximale Anzahl von Knoten. Wie groß ist die maximale Anzahl der Knoten eines vollständigen Baumes gegebener Höhe?

4 S = 2h-1 Vollständige Bäume 1 1 2 1 2 3 3 4 h 2h-1-1 2h-1 Anzahl
innere Knoten Blätter Baum Höhe 1 1 2 1 2 3 3 4 ... h 2h-1-1 2h-1 S = 2h-1

5 Vollständige Bäume S: 2h + 2h - 1 = 2h+1-1
Satz: Ein vollständiger binärer Baum der Höhe h enthält h-1 Blätter und 2h-1 Knoten. Beweis: 1) Induktionsanfang: h= 1 Der Baum besteht nur aus der Wurzel, die auch das einzige Blatt ist: 21-1 = 20 = Blatt 21-1 = = Knoten 2) Induktionsschritt: h  h + 1 Höhe h Höhe h + 1 2h-1 Blätter h Blätter 2h-1 Knoten h-1 innere Knoten S: 2h + 2h - 1 = 2h+1-1

6 Minimale Knotenanzahl von AVL-Bäumen
N(h) sei die minimale Anzahl von Knoten eines AVL- Baumes der Höhe h. h = 1 N(1) = 1 h = 2 N(2) = 2 h = 3 N(3) = 4

7 Minimale Knotenanzahl von AVL-Bäumen
Allgemeiner Fall: 1 N(h-2) N(h-1) worst case der Höhe h: N(h) = N(h-1) + N(h-2) + 1

8 Fibonacci-Zahlen fib(0) = 0 fib(1) = 1 fib(2) = 1 ...
fib(n) = fib(n-1) + fib(n-2) Abschätzung von fib: Sei

9 Minimale Knotenanzahl von AVL-Bäumen
Satz: N(h) = fib(h+2) - 1 Beweis: 1) Induktionsanfang: h = 1 fib(1+2) - 1 = fib(3) - 1 = = 1 2) Induktionsschritt: h  h + 1 N(h+1) = 1 + N(h) + N(h-1) = 1+ fib(h+2) fib(h+1) - 1 = fib(h+3) - 1 = fib([h+1]+2) - 1 1 N(h-1) N(h)

10 Maximale Höhe von AVL-Bäumen
Daraus folgt nach Umformung der Abschätzung: Ein AVL-Baum mit n Knoten hat höchstens die Höhe 1,44...  log(n) + const

11 Das Wichtigste zu AVL in Kürze
1. Die { L, R, RL, LR } - Rotationen finden Anwendung, wenn bei der Rückkehr von den eingefügten/gelöschten Knoten zur Wurzel des Baumes ein Balance-Faktor {-2, +2 } gefunden wird. 2. Die Wiederherstellung der AVL-Eigenschaft involviert höchstens 3 Knoten + Verweise auf die Nachfolger  Prinzip der Lokalität (Das Problem kann auch nur auf dem Weg von einem Blatt zur Wurzel des Baumes auftreten.) 3. Es finden nur vertikale Verschiebungen der involvierten Knoten statt.

12 Das Wichtigste zu AVL in Kürze
Die Form eines Baumes hängt von der Eingabefolge ab: Eingabe von {1, 2, 3} Eingabefolge: 2, 1, 3 2 1 3 2 1 3 Eingabefolge: 2, 3, 1

13 Das Wichtigste zu AVL in Kürze
Eingabefolge: 1, 2, 3 1 2 1 2 3 2 1 3 L-Rotation

14 Das Wichtigste zu AVL in Kürze
Eingabefolge: 3, 2, 1 -2 1 2 3 R-Rotation 2 1 3

15 Das Wichtigste zu AVL in Kürze
Eingabefolge: 3, 1, 2 R 2 2 1 2 3 1 2 3 L 2 1 3 L-R-Rotation

16 Das Wichtigste zu AVL in Kürze
Eingabefolge: 1, 3, 2 2 L 2 3 2 1 3 2 1 R 2 1 3 R-L-Rotation

17 4 Fälle im Überblick R LR RL L
Woher rührt die Verletzung der Balance am Knoten ? R LR RL L

18 Güte von Algorithmen Gesichtspunkte Nachvollziehbarkeit
Implementierungsaufwand Portierbarkeit Platzbedarf Zeitbedarf, abhängig von Größe der Eingabe Maschine (CPU, ...) Algorithmus Benchmarks asymptotische Komplexität

19 Asymptotische Komplexität
Groß-Oh-Notation Definition: wobei

20 Groß-Oh-Notation Beispiele:

21 Inklusion O(1)  O(log n)   O(n)   O(n log n)   O(n2)   O(n3)
 ...  O(exp n)  

22 Wie schnell wächst ... ? n log n n log n

23 „Nichts wächst so schnell ...“
exp n n log n ... wie exponentiell!“

24 Komplexität - Beispiele
Wie schwierig ist Addition/Multiplikation bei Zahlen gegebenen Formats, z.B. double: a+b, a*b O(1) Vergleich: a < b O(1) Zuweisung : a = b O(1) Sprungbefehle: while(a > b) O(1) Zugriff auf array a[ i ]: O(1) i-te Element einer Liste (Länge n): O(n) Einfügen am Anfang einer Liste: O(1) Einfügen am Anfang eines Arrays: O(n)

25 Komplexität (Beispiele - worst case)
Suchen in einem Array (nicht sortiert): O(n) in einer Liste: O(n) in einem binären Suchbaum: O(n) in einem AVL-Baum: O(log n) Sortieren mit Quicksort: O(n²) mit AVL-Bäumen: O(n * log n) Suchen eines Punktes in einer geeigneten Struktur: O(log n) Aufbau einer geeigneten Struktur von Punkten: O(n * log n)


Herunterladen ppt "Vorlesung AVL-Bäume/Algorithmen-"

Ähnliche Präsentationen


Google-Anzeigen