Vorlesung AVL-Bäume/Algorithmen-

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.
Mindesthöhe: |_log2 n_|, maximale Höhe: n-1
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Das LCA – Problem in Suffixbäumen
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
3. Kapitel: Komplexität und Komplexitätsklassen
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Balancierte Bäume Effizienz der Wörterbuchoperationen auf Bäumen hängt direkt von der Baumhöhe ab. Baum mit n Knoten: Mindesthöhe: |_log2 n_|, maximale.
5. Sortier-Algorithmen Vorbemerkungen:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (24 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Diskrete Mathematik I Vorlesung 6 Binärer Suchbaum II.
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Algorithmen und Komplexität
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Splay Trees Von Projdakov Benjamin.
Effiziente Algorithmen
Geoinformation II Vorlesung 2 SS 2001 AVL-Bäume.
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
? Laufzeit Speicherbedarf Bubblesort Quicksort Selectionsort Radixsort
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Komplexität von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Binärer Suchbaum IV AVL-Baum I
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-
Binärer Baum, Binärer Suchbaum I
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Binärer Suchbaum I-
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Klausur „Diskrete Mathematik II“
AVL-Bäume.
Vorlesung April 2000 Polygon Overlay
Diskrete Mathematik II
Amortisierte Analyse: Buchhaltermethode
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Punkt-in-Landkarte II
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

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

Ü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

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?

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

Vollständige Bäume S: 2h + 2h - 1 = 2h+1-1 Satz: Ein vollständiger binärer Baum der Höhe h enthält 2h-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 = 1 Blatt 21-1 = 2 - 1 = 1 Knoten 2) Induktionsschritt: h  h + 1 Höhe h Höhe h + 1 2h-1 Blätter 2h Blätter 2h-1 Knoten 2h-1 innere Knoten S: 2h + 2h - 1 = 2h+1-1

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

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

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

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 = 2 - 1 = 1 2) Induktionsschritt: h  h + 1 N(h+1) = 1 + N(h) + N(h-1) = 1+ fib(h+2) - 1 + fib(h+1) - 1 = fib(h+3) - 1 = fib([h+1]+2) - 1 1 N(h-1) N(h)

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

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.

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

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

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

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

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

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

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

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

Groß-Oh-Notation Beispiele:

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

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

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

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)

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)