14. Rot-Schwarz-Bäume
|
|
|
- Gitta Fuhrmann
- vor 9 Jahren
- Abrufe
Transkript
1 Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1). Tree-Search, Tree-Minimum, können unverändert bleiben. Tree-Insert, Tree-Delete müssen erweitert werden, um Rot-Schwarz-Bäume zu erhalten. 1
2 Rot-Schwarz-Bäume - Überblick 1. Definition von Rot-Schwarz-Bäumen 2. Zeigen Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1). 3. Definieren Rotationen, als wichtiges Hilfsmittel zur Erweiterung von Tree-Insert und Tree-Delete. 4. Beschreiben Erweiterungen von Tree-Insert (und Tree-Delete), so dass Rot-Schwarz-Bäume erhalten bleiben. 2
3 Rot-Schwarz-Bäume Definition (1) Rot-Schwarz-Bäume sind binäre Suchbäume mit zusätzlichem Feld color für jeden Knoten x. color ist entweder Rot oder Schwarz. Wenn ein Eltern oder ein Kind eines Knotens nicht vorhanden, dann wird entsprechendes Feld auf NIL gesetzt. NIL wird als Verweis auf spezielle, externe Knoten betrachtet. Diese Knoten speichern keine Schlüssel. Restliche Knoten sind interne Knoten. 3
4 Rot-Schwarz-Bäume Definition (2) Definition 14.1: Ein binärer Suchbaum heisst Rot- Schwarz-Baum, wenn folgende Bedingungen erfüllt sind: 1. Jeder Knoten ist entweder rot oder schwarz. 2. Die Wurzel ist schwarz. 3. Jedes Blatt (NIL-Knoten) ist schwarz. 4. Ist ein Knoten rot, so sind seine Kinder schwarz. 5. Für jeden Knoten x enthält jeder abwärts gerichteter Pfad zu einem Blatt die gleiche Anzahl von schwarzen Knoten. 4
5 Illustration von Rot-Schwarz-Bäumen NIL NIL NIL NIL NIL 4 NIL NIL 15 NIL NIL NIL NIL 5
6 Vereinfachung durch nil[t] Vereinfachung durch Ersetzen der NIL-Knoten durch ein zusätzliches Objekt nil[t]. Verweise zu NIL-Knoten ersetzt durch Verweise auf nil[t] nil[t] 6
7 Vereinfachte Darstellung Verzichten bei Darstellung von Rot-Schwarz-Bäumen auf nil[t] und auf Kanten zu nil[t]:
8 Höhe von Rot-Schwarz-Bäumen (2) Satz 14.2: Ein Rot-Schwarz-Baum mit n inneren Knoten hat höchstens Höhe 2 log(n+1). Korollar 14.3: Bei einem Rot-Schwarz-Baum mit n Knoten erfordern die Algorithmen Tree-Search Tree-Minimum, Tree-Maximum Tree-Successor, Tree-Predecessor Tree-Insert, Tree-Delete Zeit O(log(n)). 8
9 Erhaltung der Rot-Schwarz-Eigenschaft Nach Anwendung von Tree-Insert, Tree-Delete bei Rot-Schwarz-Baum ist Rot-Schwarz-Eigenschaft nicht notwendigerweise mehr erfüllt. Tree-Insert, Tree-Delete garantieren damit nicht, dass alle Wörterbuchoperationen effizient unterstützt werden. Dazu müssen Tree-Delete, Tree-Insert so erweitert werden, dass sie Rot-Schwarz-Eigenschaft erhalten. Erhaltung durch Umfärben von Knoten und Änderung von Verweisen. Letzteres durch Rotationen. 9
10 Illustration Rotationen Links-Rotation(T,x) x Rechts-Rotation(T,y) y α y x γ β γ α β 10
11 Algorithmus Left-Rotate Left 1 y 2 right 3 if 4 5 p 6 if left 12 p - Rotate( T,x) right[ x] [ x] left[ y] left[ y] nil[ T ] then p[ left[ y ] x [ y] p[ x] p[ x] = nil[ T ] then root[ T ] y else if x = left[ p[ x] ] then left[ p[ x ] else right[ p[ x ] [ y] x [ x] y y α y x β y Links- Rotation(T,x) γ α x β y γ
12 Illustration Left-Rotate x 2 y Left-Rotate(T,x) x y
13 Eigenschaften der Rotationen Lemma 14.4: Left-Rotate und Right-Rotate benötigen Zeit O(1). Lemma 14.5: Left-Rotate und Right-Rotate erhalten die Suchbaum-Eigenschaft. D.h. ist T ein Suchbaum und x ein Knoten in T, dann ist auch der Baum der nach Anwendung von Left-Rotate(T,x) entsteht ein Suchbaum, und analog für Right-Rotate. 13
14 Tree - Insert y nil x root while x Einfügen eines Elements ( T, z) [ T ] [ T ] nil[ T ] if key[ z] < key[ x] then x left[ x] else x right[ x] [ ] y y = nil[ T ] then root[ T ] z else if key[ z] < key[ y] then left[ y] z else right[ y] z [ z] nil[ T ] [ z] nil[ T ] [ z] RED p z if left right do y x color RB -Insert - Fixup( T,z) Änderungen zu Tree-Insert: 1. NIL ersetzt durch nil[t]. 2. Setzen von left[z],right[z] auf nil[t]. (Zeilen 14,15) 3. Färbung von z. (Zeile 16) 4. Aufruf von RB-Insert-Fixup. (Zeile 1) 14
15 Einfügen eines Elements - Illustration Nach Einfügen von Knoten mit Schlüssel 4:
16 Verletzungen der Rot-Schwarz-Eigenschaft nach Zeilen 1-16 von RB-Insert Rot-Schwarz-Eigenschaft: 1. Jeder Knoten ist entweder rot oder schwarz. 2. Die Wurzel ist schwarz. 3. Jedes Blatt (nil[t]) ist schwarz. 4. Ist ein Knoten rot, so sind seine Kinder schwarz. 5. Für jeden Knoten x enthält jeder Pfad zu einem Blatt die gleiche Anzahl von schwarzen Knoten. Rot-Schwarz-Eigenschaft nach RB-Insert: 1. Erfüllt. 2. Nicht erfüllt, wenn z Wurzel. 3. Erfüllt. 4. Nicht erfüllt, wenn Eltern von z bereits rot ist. 5. Erfüllt. 16
17 Algorithmus RB-Insert-Fixup RB -Insert - Fixup 1 while color color do if [ root[ T ] ( T,z) [ p[ z ] = RED p[ z] = left[ p[ p[ z ] y right[ p[ p[ z ] if color [ y] = RED then color [ p[ z ] color [ y ] color [ p[ p[ z ] z p[ p[ z ] else if z = right[ p[ z ] then z p[ z] then else BLACK color color [ p[ z ] [ p[ p[ z ] Right - Rotate BLACK BLACK Left - Rotate BLACK RED (wie then, nur mit left/right RED ( T,z) ( T,p[ p[ z ]) vertauscht) 1
18 Invariante für RB-Insert-Fixup Ziel: Nach Durchlauf von RB-Insert-Fixup soll T wieder ein Rot-Schwarz-Baum sein. Invariante für while-schleife: a. Knoten z ist rot. b. Ist p[z] die Wurzel, dann ist p[z] schwarz. c. Gibt es eine Verletzung der Rot-Eigenschaft, so ist Eigenschaft 2. und Eigenschaft 4. verletzt. Ist Eigenschaft 2. verletzt, dann nur weil z Wurzel und rot ist. Ist Eigenschaft 4. verletzt, dann nur weil z und p[z] rot sind. 18
19 Initialisierung der Invariante Starten mit Rot-Schwarz-Baum, in den Knoten z eingefügt wurde. a. Eingefügter Knoten z ist rot. b. Ist p[z] Wurzel, so war p[z] schwarz. RB-Insert ändert Farbe von p[z] nicht. c. Haben gesehen, dass 1., 3., 5., auch nach Tree-Insert gelten. Verletzung von 2. und 4. kann nur durch Knoten z herbeigeführt werden. 19
20 Verletzungen der Rot-Schwarz-Eigenschaft nach Zeilen 1-16 von RB-Insert Rot-Schwarz-Eigenschaft: 1. Jeder Knoten ist entweder rot oder schwarz. 2. Die Wurzel ist schwarz. 3. Jedes Blatt (nil[t]) ist schwarz. 4. Ist ein Knoten rot, so sind seine Kinder schwarz. 5. Für jeden Knoten x enthält jeder Pfad zu einem Blatt die gleiche Anzahl von schwarzen Knoten. Rot-Schwarz-Eigenschaft nach RB-Insert: 1. Erfüllt. 2. Nicht erfüllt, wenn z Wurzel. 3. Erfüllt. 4. Nicht erfüllt, wenn Eltern von z bereits rot ist. 5. Erfüllt. 20
21 Terminierung der Invariante Nach Invariante kann Rot-Schwarz-Eigenschaft nur bei 2. und 4. verletzt sein. Bei Terminierung ist p[z] schwarz. Da Verletzung von 4. nur bei p[z] und z auftreten kann, ist 4. erfüllt. Nur noch 2. kann verletzt sein. Zeile 16 stellt sicher, dass 2. erfüllt ist. Zeile 16 kann nicht zur Verletzung anderer Eigenschaften führen. Alle 5 Eigenschaften erfüllt, damit T nach Durchlauf von RB-Insert-Fixup wieder Rot-Schwarz-Baum. 21
22 Erhaltung der Invariante (1) Müssen bei Erhaltung 6 Fälle betrachten: 1) p[z] ist linkes Kind von p[p[z]] und Onkel y von z ist rot. 2) p[z] ist linkes Kind von p[p[z]] Onkel y von z ist schwarz und z ist rechtes Kind. 3) p[z] ist linkes Kind von p[p[z]] Onkel y von z ist schwarz und z ist linkes Kind. 4) p[z] ist rechtes Kind von p[p[z]] und Onkel y von z ist rot. 5) p[z] ist rechtes Kind von p[p[z]] Onkel y von z ist schwarz und z ist rechtes Kind. 6) p[z] ist rechtes Kind von p[p[z]] Onkel y von z ist schwarz und z ist linkes Kind. Fälle 1),2),3) symmetrisch zu Fällen 4),5),6). Deshalb nur 1),2),3). Wie auch schon in RB-Insert-Fixup. 22
23 Illustration Fall 1) und 2) Fall 1) y z 4 Fall 2) 2 1 z 14 y
24 Illustration Fall 3) Fall 3) z y
25 Algorithmus RB-Insert-Fixup RB -Insert - Fixup 1 while color color do if [ root[ T ] ( T,z) [ p[ z ] = RED p[ z] = left[ p[ p[ z ] y right[ p[ p[ z ] if color [ y] = RED then color [ p[ z ] color [ y] color [ p[ p[ z ] z p[ p[ z ] else if z = right[ p[ z ] then z p[ z] then else BLACK color color [ p[ z ] [ p[ p[ z ] Right - Rotate BLACK BLACK RED Left - Rotate BLACK RED (wie then, nur mit left/right ( T,z) ( T,p[ p[ z ]) vertauscht) Fall 1) Zeilen 5 8 Fall 2) Zeilen10- Fall 3) Zeilen
26 RB-Insert-Fixup in Fall 1) 5 then color 6 color color 8 z p [ p[ z ] [ y] [ p [ p [ z ] [ p[ z ] BLACK BLACK RED C C neues z A D y A D α B z δ ε α B δ ε β γ β γ Wurzeln der Teilbäume α,β,γ,δ,ε jeweils schwarz. 26
27 RB-Insert-Fixup in Fall 2) [ z] 10 z p Left - Rotate ( T,z) C C α A B z δ y z A B γ δ y β γ α β Wurzeln der Teilbäume α,β,γ,δ,ε jeweils schwarz. 2
28 RB-Insert-Fixup in Fall 3) [ p[ z ] BLACK [ p [ p [ z ] RED T,p[ p[ z ] color color Right - Rotate( ) C B z A B γ δ y α z A β γ C δ α β Wurzeln der Teilbäume α,β,γ,δ,ε jeweils schwarz. 28
29 Illustration von RB-Insert-Fixup 2 14 Fall 1) 2 14 y y z 8 15 z 4 4 Fall 2) Fall 3) 1 z z y
30 Laufzeitanalyse RB-Insert hat wie Tree-Insert Laufzeit proportional zur Höhe des Baumes. Bei einem Rot-Schwarz-Baum mit n Knoten also Laufzeit O(log(n)). Fälle 2) und 3) von RB-Insert-Fixup werden jeweils höchstens einmal ausgeführt. Nach 2) kommt immer 3) und in 3) wird die Verletzung von 4. beseitigt ohne neue Verletzungen einzuführen. In Fall 1) wird die Verletzung von Knoten z auf Knoten p[p[z]] übertragen. Damit kann Fall 1) höchstens O(log(n)) auftreten. Laufzeit von RB-Insert-Fixup somit O(log(n)). 30
31 Tree-Delete und Zusammenfassung Tree-Delete führt wie Tree-Insert zu Problemen: Nach Anwendung auf Rot-Schwarz-Baum sind Rot-Schwarz- Eigenschaften nicht mehr erfüllt. Erweiterung von Tree-Delete mit Hilfe von RB-Delete- Fixup. Zusammen Laufzeit O(log(n)) und erhalten Rot-Schwarz- Eigenschaften bei Entfernen von Knoten. Insgesamt können also durch Rot-Schwarz-Bäume alle Wörterbuchoperationen effizient nämlich in Zeit O(log(n)) unterstützt werden. 31
32 Alternativen zu Rot-Schwarz-Bäumen Neben Rot-Schwarz-Bäumen gibt es noch andere Varianten von Suchbäumen, die Wörterbücher effizient implementieren. Hierzu gehören u.a. 1. AVL-Bäume Bäume 3. Zufällige Suchbäume (randomized search trees (RST)) 4. B-Bäume (besonders gut für Sekundärspeicher geeignet) Als Alternative zu Hashing und Suchbäumen gibt es noch Skip-Listen. Diese sind Erweiterungen von verketteten Listen. 32
33 Zusammenfassung Datenstrukturen Dynamische Menge/abstrakten Datentypen sind Mengen mit Operationen, die effizient ausgeführt werden sollen, z.b. Wörterbücher, Warteschlangen,. Dabei kann die Menge durch Einfügen/Entfernen von Objekte geändert werden. Nützlich, wenn bestimmte Operationen immer wieder durchgeführt werden müssen, z.b. Maximumbestimmung bei Heap-Sort. Datenstrukturen als Implementierungen von dynamischen Mengen. 33
34 Geometrische Datenstrukturen Kennen gelernt: 1. Stacks, Queues, Listen 2. Hashing 3. Binäre Suchbäume, speziell Rot-Schwarz- Bäume Datenstrukturen werden häufig auch in geometrischen Anwendungen (Computer Graphik, Geographische Informationssysteme (GIS)) benutzt. Dynamische Menge S definiert durch Punkte in der Ebene und so genannte Bereichsabfragen. 34
35 Geometrische Datenstrukturen Bereichsabfragen: Gegeben ein geometrisches Objekt eines bestimmten Typs, sollen alle Elemente aus S berechnet werden, die im Objekt enthalten sind. Typen von Objekten können z.b. sein Halbebenen Kreise Rechtecke 35
36 Geometrische Datenstrukturen - Beispiel Kreisabfrage: 36
13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &
Grundlagen Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann [email protected] 25. November 2015 Frank Heitmann [email protected]
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Rot-schwarz Bäume Eigenschaften Rotationen Einfügen (Löschen) 2 Einführung Binäre Suchbäume Höhe h O(h) für Operationen
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann [email protected] 25. November 2015 Frank Heitmann [email protected] 1/122
VL-11: Rot-Schwarz Bäume. (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs
VL-11: Rot-Schwarz Bäume (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs SS 2017, RWTH DSAL/SS 2017 VL-11: Rot-Schwarz Bäume 1/41 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer 4024 im
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
Datenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
Algorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
Informatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei
9. Natürliche Suchbäume
Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten
Algorithmen und Datenstrukturen I Bruder-Bäume
Algorithmen und Datenstrukturen I Bruder-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 11.12.2017 10:50 Algorithmen und Datenstrukturen I, Bruder-Bäume 1/24 Definition ein binärer Baum heißt ein Bruder-Baum,
Algorithmen und Datenstrukturen I AVL-Bäume
Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum
Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI
Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
Kapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für
11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
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
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
Anwendungsbeispiel MinHeap
Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n
elementare Datenstrukturen
elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber [email protected] elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:
1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem
Übung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)
Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array
Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen
Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl
Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
Suchbäume mit inneren Knoten verschiedener Knotengrade.
Was bisher geschah rekursive Datenstrukturen: lineare Datenstrukturen: Liste, Stack, Queue hierarchische Datenstrukturen: Bäume allgemeine Bäume Binäre Bäume Unäre Bäume = Listen Tiefe eines Knotens in
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente
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
// Mengen Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps n Ziel: ufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: n eines Elements n eines Elements
Doppelt verkettete Listen (1)
Doppelt verkettete Listen (1) Verkettete Listen bestehen aus einer Menge linear angeordneter Objekte. Anordnung realisiert durch Verweise. Unterstützen Operationen Insert, Delete, Search, usw. (nicht unbedingt
ContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
Übung Algorithmen I
Übung Algorithmen I.6.5 Christoph Striecks [email protected] (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Hinweise zur Übungsklausur (Weitere) Traversierungen von Binärbäumen
Algorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:
HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter
2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
Randomisierte Datenstrukturen
Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 7 Prof. Dr. Helmut Seidl, S. Pott,
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 216 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Vorstellung des 6. Übungsblatts. Hashing Binäre Suchbäume AVL-Bäume 2 Aufgabe: Hashing mit
4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als
Kapitel 4 Bäume 4.1 Bäume, Datenstrukturen und Algorithmen Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als eine Menge von Knoten und eine Menge von zugehörigen
Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)
AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode
Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume
Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
Copyright, Page 1 of 8 AVL-Baum
www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist
(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
