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

Ähnliche Dokumente
Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

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

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Abschnitt 18: Effizientes Suchen in Mengen

Übung: Algorithmen und Datenstrukturen SS 2007

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

Dynamische Mengen. Realisierungen durch Bäume

Algorithmen und Datenstrukturen 1

Copyright, Page 1 of 8 AVL-Baum

Kapitel Andere dynamische Datenstrukturen

Mehrwegbäume Motivation

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

Datenstrukturen und Algorithmen (SS 2013)

Balancierte Suchbäume

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Algorithmen und Datenstrukturen

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

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Informatik II, SS 2014

Algorithmen und Datenstrukturen Balancierte Suchbäume

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen I AVL-Bäume

ContainerDatenstrukturen. Große Übung 4

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

Algorithmen und Datenstrukturen

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

Datenstrukturen und Algorithmen

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

7 Weitere Baumstrukturen und Heapstrukturen

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

7. Sortieren Lernziele. 7. Sortieren

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

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Algorithmen & Datenstrukturen. 3. Suchen

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

Übung Algorithmen I

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15.

3.6 AVL-Bäume. (AVL = Adel son-velskii und Landis (1962)) . Seite 326/726

Logische Datenstrukturen

Informatik II, SS 2014

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. SS 06

Informatik II, SS 2016

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum.

Datenstrukturen & Algorithmen

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

RWTH Aachen, Lehrstuhl für Informatik IX Kapitel 3: Suchen in Mengen - Datenstrukturen und Algorithmen - 51

13. Binäre Suchbäume

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

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

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

Höhe eines B + -Baums

Zugriff auf Elemente im B + -Baum. Höhe eines B + -Baums. Einfache Operationen auf B + -Bäumen. Anzahl der Blätter bei minimaler Belegung

Kap. 4.2: Binäre Suchbäume

Algorithmen und Datenstrukturen 1-5. Seminar -

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Übung zur Vorlesung Algorithmische Geometrie

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Programmiertechnik II

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.

Algorithmen und Datenstrukturen

Informatik II, SS 2014

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps

Algorithmen und Datenstrukturen Suchbaum

Motivation Binäre Suchbäume

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

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

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)

Vorlesung Datenstrukturen

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

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

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Algorithmen und Datenstrukturen 1

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen I Bruder-Bäume

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Bäume. Bäume, Binärbäume, Traversierungen, abstrakte Klassen, Binäre Suchbäume, Balancierte Bäume, AVL-Bäume, Heaps, Heapsort, Priority queues

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/07

Informatik II Prüfungsvorbereitungskurs

Informatik B Sommersemester Musterlösung zur Klausur vom

Transkript:

Balancierte Bäume Aufwand, ein Element zu finden, entspricht der Tiefe des gefundenen Knotens im worst case = Tiefe des Baumes liegt zwischen log N und N Definition für "balanciert": es gibt verschiedene Definitionen Allgemein: kein Blatt ist wesentlich weiter von der Wurzel entfernt als irgendein anderes Hier: Für alle Knoten unterscheidet sich Anzahl der Knoten in linkem und rechtem Teilbaum höchstens um 1 Tiefe: N-2 Folge: ein binärer Baum der Tiefe log N schlecht balancierte Bäume erhält man, wenn die Elemente in sortierter Reihenfolge angeliefert werden Aufwand, einen optimal balancierten Baum nach Einfüge- und Löschoperationen zu erzwingen, ist sehr groß. Zachmann Informati - SS 6 Bäume 5. Zachmann Informati - SS 6 Bäume 51 AVL-Bäume Minimale Knotenanzahl von AVL-Bäumen AVL-Baum 1962 von Adelson, Velskij und Landis eingeführt N(h) sei die minimale Anzahl von Knoten eines AVL-Baumes der Höhe h schwächere Form eines balancierten Baumes Definition Balance-Faktor: bal() = (Höhe des rechten Unterbaumes von ) - (Höhe des linken Unterbaumes von ) Höhe mögliche AVL-Bäume dieser Höhe Knotenzahl h = 1 N(1) = 1 Definition AVL-Baum: binärer Baum, wobei für jeden Knoten gilt: bal() {,,1} 1 1 h = 2 N(2) = 2 1 h = N() = 4. Zachmann Informati - SS 6 Bäume 52. Zachmann Informati - SS 6 Bäume 5 1

Allgemeiner worst case Fall bei Höhe h: Satz: Beweis: 1) Induktionsanfang: h = 1 1 2) Induktionsschritt: 1 N(h-2) N(h) N(h) N(h). Zachmann Informati - SS 6 Bäume 54. Zachmann Informati - SS 6 Bäume 55 Minimaler AVL-Baum der Höhe 1 Maimale Höhe von AVL-Bäumen Erinnerung: Fibonacci-Zahlen Aus von F n die folgt nach Umformung und Abschätzung Wichtige Eigenschaft von AVL-Bäumen: Ein AVL-Baum mit N Knoten hat höchstens die Höhe Erinnerung: Die Höhe jedes binären Baumes mit N Knoten beträgt mindestens. Zachmann Informati - SS 6 Bäume 56. Zachmann Informati - SS 6 Bäume 57 2

AVL Search Tree Problem: wir wollen BST, der auch über viele Insert- und Delete- Operationen halbwegs gut balanciert bleibt Idee: verwende BST, der zusätzlich AVL-Eigenschaften hat Problem: wie erhält man AVL-Eigenschaften bei Einfügen/Löschen? 1 7 4 2 Einfügen von k = 1 5 5 2 25 45 6 26 9. Zachmann Informati - SS 6 Bäume 5. Zachmann Informati - SS 6 Bäume 59 Einfügen von k = 2 Einfügen von k = 2 26 9 Ausgeglichenheit ist verletzt 26 9. Zachmann Informati - SS 6 Bäume 6. Zachmann Informati - SS 6 Bäume 61

Einfügen von k = 2 Einfügen von k = 2 Ausbalancieren durch Rotation 26 9 R- Rotation 26 9. Zachmann Informati - SS 6 Bäume 62. Zachmann Informati - SS 6 Bäume 6 Einfügen von k = 2 Einfügen von k = 2 26 26 9 L- Rotation 9. Zachmann Informati - SS 6 Bäume 64. Zachmann Informati - SS 6 Bäume 65 4

Einfügen von k = 2 Einfügen von k = 26 26 2 9 9. Zachmann Informati - SS 6 Bäume 66. Zachmann Informati - SS 6 Bäume 67 löschen von k = 2 löschen von k = 2 26 9 26 9. Zachmann Informati - SS 6 Bäume 6. Zachmann Informati - SS 6 Bäume 69 5

löschen von k = 2 löschen von k = 2 26 9 26 9. Zachmann Informati - SS 6 Bäume 7. Zachmann Informati - SS 6 Bäume 71 löschen von k = 2 löschen von k = 2 26 9 L- Rotation 26 9. Zachmann Informati - SS 6 Bäume 72. Zachmann Informati - SS 6 Bäume 7 6

löschen von k = 2 26 9 löschen von k = 2 26 9. Zachmann Informati - SS 6 Bäume 74. Zachmann Informati - SS 6 Bäume 75 AVL-Rotationen RR-Rotation Operationen auf AVL-Bäumen zur Erhaltung der AVL-Eigenschaft Bestehen ausschließlich aus Umhängen von Zeigern Es gibt 2 verschiedene Arten von Rotationen Single Rotation: RR und LL - RR = der neue Knoten befindet sich im rechten Teilbaum des rechten Teilbaums vom (jetzt) unbalancierten Knoten aus - LL = analog - wird manchmal auch einfach nur R- bzw. L-Rotation genannt Double Rotation: - RL = neuer Knoten im linken Unterbaum des rechten Unterbaumes T 2 T - m.a.w.: vom Knoten mit dem "schlechten" Balancefaktor muß man in den rechten Teilbaum gehen, dann von da aus in den linken Teilbaum, dann kommt man zu dem neu eingefügten Knoten - LR = analog. Zachmann Informati - SS 6 Bäume 76. Zachmann Informati - SS 6 Bäume 77 7

RR-Rotation RR-Rotation T 2 T T 2 T. Zachmann Informati - SS 6 Bäume 7. Zachmann Informati - SS 6 Bäume 79 LL Rotation Algorithm RR Rotation Algorithm def LL_Rotate (k2): k1 = k2.left k2.left = k1.right k1.right = k2 return k1 def RR_Rotate (k1): k2 = k1.left k1.right = k2.left k2.left = k2 return k2. Zachmann Informati - SS 6 Bäume 1. Zachmann Informati - SS 6 Bäume 2

LR-Rotation LR-Rotation -2-2 k k T 2 T T 4 T 2 T T 4. Zachmann Informati - SS 6 Bäume. Zachmann Informati - SS 6 Bäume 4 LR-Rotation LR-Rotation -2-2 k k T T 4 T T 4 T 2 T 2. Zachmann Informati - SS 6 Bäume 5. Zachmann Informati - SS 6 Bäume 6 9

LR-Rotation ode def LR_doubleRotate ( k ): k.left = RR_Rotate ( k.left ) return LL_Rotate ( k ) k k k D T 2 T A B A B D T 4 (a) Before rotation neues Element kann in B oder sein (b) After rotation. Zachmann Informati - SS 6 Bäume 7. Zachmann Informati - SS 6 Bäume Warum Double Rotation? def RL_doubleRotate( k1 ): k1.right = LL_Rotate( k1.right ) return RR_Rotate( k1 ) Single Rotation kann LR oder RL nicht lösen:. Zachmann Informati - SS 6 Bäume 9. Zachmann Informati - SS 6 Bäume 9 1

Algo-Animation http://webpages.ull.es/users/jriera/docencia/avl/avl%2tree%2applet.htm. Zachmann Informati - SS 6 Bäume 91