Datenstrukturen und Algorithmen

Ähnliche Dokumente
Datenstrukturen und Algorithmen

Datenstrukturen & Algorithmen

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

15 Optimales Kodieren

Algorithmen und Datenstrukturen Balancierte Suchbäume

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

Programmiertechnik II

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Algorithmen und Datenstrukturen Suchbaum

13. Binäre Suchbäume

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

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

Algorithmen und Datenstrukturen

Kap. 4.2: Binäre Suchbäume

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

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

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

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

Kapitel 9 Suchalgorithmen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

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

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Tutorium Algorithmen & Datenstrukturen

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Sortierverfahren für Felder (Listen)

368 4 Algorithmen und Datenstrukturen

Suchen und Sortieren Sortieren. Heaps

Nachtrag zu binären Suchbäumen

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

Kapitel 8: Physischer Datenbankentwurf

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Programmierung und Modellierung

Sortierte Folgen 250

Grundlagen der Programmierung 2. Bäume

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

Kapiteltests zum Leitprogramm Binäre Suchbäume

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg

Binäre Bäume Darstellung und Traversierung

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

Seminarausarbeitung Entwurf und Analyse von Datenstrukturen. Splay Trees. Mirco Lukas und Alexander Werthmann. Datum:

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

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

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Vorkurs Informatik WiSe 15/16

Informatik II. PVK Part1 Severin Wischmann n.ethz.ch/~wiseveri

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Algorithmen und Datenstrukturen SS09

Suchen und Sortieren

Datenstrukturen in Java

binäre Suchbäume Informatik I 6. Kapitel binäre Suchbäume binäre Suchbäume Rainer Schrader 4. Juni 2008 O(n) im worst-case Wir haben bisher behandelt:

WS 2009/10. Diskrete Strukturen

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

6. Algorithmen der Computer-Geometrie

Kapitel 5: Dynamisches Programmieren Gliederung

Algorithmen & Datenstrukturen 1. Klausur

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Algorithmen und Datenstrukturen 1

4 Greedy-Algorithmen (gierige Algorithmen)

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester Robert Marti

Physische Datenorganisation

Anmerkungen zur Übergangsprüfung

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel

Algorithmen und Datenstrukturen Bereichsbäume

Binary Space Partitioning Trees: Konzepte und Anwendungen

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

DAP2-Klausur

Algorithmen und Datenstrukturen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Kostenmaße. F3 03/04 p.188/395

Zeichnen von Graphen. graph drawing

Programmieren I. Kapitel 7. Sortieren und Suchen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Spieltheorien und Theoreme

Priority search queues: Loser trees

2 Java: Bäume. 2.1 Implementierung von Bäumen. 2.2 Implementierung eines binären Suchbaums. 2.3 Traversierung von Bäumen

Browser Grid Funktionalitäten

Moderne Methoden der KI: Maschinelles Lernen

Laufzeit und Komplexität

16. All Pairs Shortest Path (ASPS)

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Digitale Magazine ohne eigenen Speicher

EndTermTest PROGALGO WS1516 A

2.11 Kontextfreie Grammatiken und Parsebäume

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

3 Implementieren von Bäumen Feldbäume Sequentielle Verfahren Dynamische Struktur... 6

Transkript:

Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume robert.legenstein@igi.tugraz.at 1

7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen (2-4)-Bäume robert.legenstein@igi.tugraz.at 2

Sortierte Binärbäume können entarten! Aufbau eines sortierten Binärbaumes: durch wiederholtes Einfügen ( natürliche Bäume) Binärbaum hängt von der Reihenfolge der Elemente ab T(n) = O(n*h) = Θ(n 2 ), wenn h = Θ(n) Einige Reihenfolgen liefern entartete Bäume (= Listen) Fügt man randomisiert ein, ist E h = Θ log n (2-4)-Bäume robert.legenstein@igi.tugraz.at 3

Binärbäume - online Durch Update-Operation (Löschen, Einfügen) 1 Höhe log(n) 3 8 9 Entartet! Höhe = O(n) Umstrukturieren O(n) 7 (fast) ausgeglichen = gut, da minimale Höhe = O( log n) teuer! 4 5 11.12.2008 robert.legenstein@igi.tugraz.at

Zusammenfassung - Sortierte Binärbäume Zusammenfassung: Minimum Maximum Vorgänger Nachfolger Einfügen Löschen Suchen Alle Operationen in O(h) Zeit h Baumhöhe Vorteil: dynamische Lösung des Wörterbuchproblems Nachteil: Zeiten bis zu Θ(n) wenn Baum entartet ist, Bsp.: online Elemente hinzufügen (2-4)-Bäume robert.legenstein@igi.tugraz.at 5

7. Bäume Bäume als Datenstruktur WH Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen (2-4)-Bäume robert.legenstein@igi.tugraz.at 6

Balancierte Bäume Bedingungen zum Erhalten einer logarithmischen Baumhöhe: 1. Höhenbedingung: h(b) = Höhe von B Für jeden Knoten gilt: h( B links ) h( B ) rechts z.b.: AVL-Bäume (1962) k 2. Gewichtsbedingung: g(b) = #Blätter von B Für jeden Knoten gilt: 1 g( Blinks) g( B ) rechts BB-Bäume (bounded balance) 3. Strukturbedingung: Alle Blätter haben die gleiche Tiefe, aber Ordnung der Knoten (# Kinder) ist variabel (a-b)-bäume, B-Bäume, Bruder-Bäume (2-4)-Bäume robert.legenstein@igi.tugraz.at 7

(2-4)-Bäume Balancierung ist leichter aufrechtzuerhalten, wenn die Werte blattorientiert statt knotenorientiert gespeichert werden. Innere Knoten enthalten nur Hilfsinformationen. Ein (2-4)-Baum ist ein Baum mit folgenden Eigenschaften: (1) Alle Äste sind gleich lang. (2) Die max. Anzahl der Kinder eines Knotens ist 4. (3) Innere Knoten haben 2 Kinder. (4) Die Blätter enthalten v.l.n.r. die Werte aufsteigend sortiert. (5) Jeder innere Knoten k mit α(k) Kinder (2 α(k) 4) speichert α(k)-1 Hilfsinformationen x 1,, x α(k)-1, wobei x i = größter Wert im Teilbaum des i-ten Kindes von links. 2 α(k) 4 Anzahl der Kinder des Knotens k (2-4)-Bäume robert.legenstein@igi.tugraz.at 8

(2-4)-Bäume Beispiel: 4,6 Innere Knoten k speichern Hilfsinformationen (z.b.: Max. der linken α(k) Unterbäume) 1,2 5 10,11 1 2 4 5 6 10 11 24 Höhe h=θ(log n) Daten werden in den Blättern gespeichert (v.l.n.r. aufsteigend sortiert) n Anzahl der Blätter (= Anzahl gespeicherte Keys) (2-4)-Bäume robert.legenstein@igi.tugraz.at 9

(2-4)-Bäume: Suchen Suchen: pro Knoten wird der relevante Teilbaum in O(1) Zeit pro Knoten selektiert Θ(h) = Θ(log n) Zeit 8 11 2 4 5 10 12 24 2 4 5 8 10 11 12 24 31 (2-4)-Bäume robert.legenstein@igi.tugraz.at 10

(2-4)-Bäume: Einfügen 2 α(k) 4 Anzahl der Kinder des Knotens k Einfügen: Suchen, Blatt an Knoten k anhängen α(k) 4: Resultierender Baum ist wieder ein (2-4)-Baum α(k) = 5: Resultierender Baum ist kein (2-4)-Baum SPALTEN von k: Gib k einen Bruder k' rechts von k. Hänge die 2 rechtesten Kinder von k auf k' um α(k) = 3, α(k') = 2 SPALTEN muss evtl. für übergeordnete Knoten wiederholt werden (evt. bis zur Wurzel. Diese wird dann Kind einer neuen Wurzel mit α(w)=2) O(h) = O(log n) Zeit (2-4)-Bäume robert.legenstein@igi.tugraz.at 11

(2-4)-Bäume: Entfernen Entfernen: Suchen, Blatt von Knoten k entfernen α(k) 2: Resultierender Baum ist wieder ein (2-4)-Baum α(k) = 1: Resultierender Baum ist kein (2-4)-Baum Sei k' ein direkter Bruder von k: α(k') 3: STEHLEN eines Kindes von k' α(k) = 2, α(k') 2 α(k') =2: VERSCHMELZEN von k mit k' α(k) = 3 Verschmelzen evt. für übergeordnete Knoten wiederholen (Wurzel wird durch einziges Kind ersetzt) O(h) = O(log n) Zeit (2-4)-Bäume robert.legenstein@igi.tugraz.at 12

Zusammenfassung (2-4)-Bäume Der (2-4)-Baum ist eine Datenstruktur, die das Wörterbuchproblem (Suchen, Einfügen, Entfernen) auf einer Menge von n Elementen in O(log n) Zeit pro Operation löst, und O(n) Speicher belegt. Dies ist worst-case optimal (auch bzgl. statischer Suche!). Einfügen und Entfernen erfordert Umstrukturierungen (Spalten, Stehlen, Verschmelzen) Bereits vorgenommene Umstrukturierungen amortisieren sich jedoch später (2-4)-Bäume robert.legenstein@igi.tugraz.at 13

Anwendung: Mischbare Warteschlangen 4 Operationen: EINFÜGE(S, x) MAXIMUM(S) ENTFERNE_MAX(S) MISCHE(S, S ) Die Datenstruktur Halde unterstützt die ersten 3 Operationen in O(log n) Zeit. Mischen von Halden ist aber teuer, O(n) Zeit. Bäume sind flexibel genug um Mischen in O(log n) Zeit zu ermöglichen. (2-4)-Bäume robert.legenstein@igi.tugraz.at 14

Mischbare Warteschlangen Mischbare Warteschlange mittels unsortiertem (2-4)-Baum: Die Blätter speichern S in beliebiger Reihenfolge. Jeder Knoten speichert das Maximum in seinem Teilbaum, sowie einen Zeiger auf das entsprechende Blatt. (2-4)-Bäume robert.legenstein@igi.tugraz.at 15

Mischbare Warteschlangen MAXIMUM(S): trivial, berichte Hilfsinfo in Wurzel. ENTFERNE_MAX(S): Wurzel zeigt auf Blatt k mit größtem Wert. Entferne k wie in (2-4)-Bäumen üblich Berechne für die inneren Knoten auf dem Ast von k bis zur Wurzel die Info neu. Aufwand: O(log n). (2-4)-Bäume robert.legenstein@igi.tugraz.at 16

Mischbare Warteschlangen MAXIMUM(S): trivial, berichte Hilfsinfo in Wurzel. ENTFERNE_MAX(S): Wurzel zeigt auf Blatt k mit größtem Wert. Entfene k wie in (2-4)-Bäumen üblich Berechne für die inneren Knoten auf dem Ast von k bis zur Wurzel die Info neu. Aufwand: O(log n). (2-4)-Bäume robert.legenstein@igi.tugraz.at 17

Mischbare Warteschlangen EINFÜGE(S, x): Wie einfügen in (2-4)-Baum (aber unsortiert). MISCHE(S, S ): Fall h = h : Neue Wurzel mit entsprechender Info. O(1) Zeit. (2-4)-Bäume robert.legenstein@igi.tugraz.at 18

Mischbare Warteschlangen MISCHE(S, S ): Fall h > h (h < h analog): Sei k der rechteste Knoten von T mit Höhe h. Anhängen von w an parent v von k. Wenn α(v) = 5: SPALTEN von v, evt. weiter nach oben spalten wie beim Einfügen in (2-4)-Baum (+ Info updaten). Aufwand: O(log n) (2-4)-Bäume robert.legenstein@igi.tugraz.at 19