EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido

Slides:



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

Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Claudio Moraga; Gisbert Dittrich
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
Durchlaufen eines Binärbaumes
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) 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.
Algorithmen und Datenstrukturen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
Claudio Moraga; Gisbert Dittrich
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 5 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 12 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 11 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Diskrete Mathematik I Vorlesung 6 Binärer Suchbaum II.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Splay Trees Von Projdakov Benjamin.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Effiziente Algorithmen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Vorlesung Binärer Suchbaum II-
Graphen und Bäume.
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Binärer Baum, Binärer Suchbaum I
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Binärer Suchbaum I-
Binärbäume.
 Präsentation transkript:

EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Gliederung Kapitel 8 Motivation –Suchen in einfach verketteter Liste + deren Nachteile Binärer Suchbaum –Grobideen: Suchen, Suchstruktur –Idee Baum –Binärer Baum, Knotenmarkierung, Implementierung knotenmarkierter bin. Bäume, Suchbaum –Suchen –Einfügen –Analyse

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen in einer Liste bool Suchen (int i, Liste * L) { if (L == NULL) return false; else return (L->Element == i? true: Suchen(i, L->weiter)); }

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen in einer Liste Ist L die leere Liste: i kann nicht in L sein. Ist L nicht leer –entweder i == L->Element –oder i wird in L->weiter gesucht

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen in einer Liste Problem: langsame Suche –jedes Element muß bei einer erfolglosen Suche betrachtet werden –also: Suchzeit proportional zur Anzahl der Elemente in der Liste (lineare Suchzeit)

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen in einer Liste Beispiel –erfolglose Suche bei 10 9 Elementen braucht 10 9 Vergleiche, also (pro Vergleich sec.) 10 4 sec = 2,7 h –Bei geschickter Anordnung der Daten geht´s mit 35 Vergleichen, also in sec.

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suche in einer Hälfte Suche in einer Hälfte Grobidee: –Suchen in geordneter "Liste" durch Überprüfen des "mittleren" Elementes + Fortsetzung in einer Hälfte –Beispiel: k: 19 k:5 OK: nicht vorhanden

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchstruktur Aufgabe: Trage die Zahlen 17, 4, 36, 2, 8, 19, 40, 6, 7 in eine baumförmige Struktur so ein:

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Ziel: Binärer Suchbaum Zu diesem Ziel nacheinander definieren: –(Binärer) Baum –Knotenmarkierter binärer Baum –Binärer Suchbaum

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Idee von Baum KünstlerischAbstrahiert 1Abstrahiert 2Die Informatiksicht:

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binärer Baum Definition: (Binärer Baum) 1.) Der "leere" Baum ist ein binärer Baum mit der Knotenmenge. 2.) Seien B i binäre Bäume mit den Knotenmengen K i, i = 1,2. Dann ist auch B = (w, B 1, B 2 ) ein binärer Baum mit der Knotenmenge K = {w} –K 1 – K 2. (– bezeichnet disjunkte Vereinigung.) 3.) Jeder binäre Baum B läßt sich durch endlich häufige Anwendung von 1.) oder 2.) erhalten.

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binärer Baum Sprech-/Darstellungsweisen (im Falle 2.)): Sei B = (w, B 1, B 2 ) binärer Baum w heißt Wurzel, B 1 linker und B 2 rechter Unterbaum. B1B1 B2B2 Wurzel linker Unterbaum rechter Unterbaum w

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binärer Baum Darstellung eines Beispiels nach Definition: B 1 = (k 1,, (k 2, (k 3,, ), )). k1k1 k2k2 k3k3

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Terminologie Binäre Bäume Wurzel innerer Knoten Blatt

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Knotenmarkierter binärer Baum Definition: Sei M eine Menge. (B, km) ist ein knotenmarkierter binärer Baum (mit Markierungen aus M) :¤ 1.) B ist binärer Baum (mit Knotenmenge K = K(B)) 2.) km: K --> M Abbildung. (Markierung/Beschriftung der Knoten k K mit Elementen m M)

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich binärer Baum Knotenmarkierter binärer Baum Beispiel: (M := $, $ := Menge der ganzen Zahlen) damit existiert auf M eine Ordnung ! Damit: "Übliche" Darstellung der Knotenbeschriftung km durch "Anschreiben" der Beschriftung an/in die Knoten. k1k1 k2k2 k3k

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Datentyp BinBaum Implementierung knotenmarkierter binärer Bäume durch eine struct mit Zeigern: –Inhalt, (hier z. B.) ganzzahlig (Später allgemeiner möglich) –Zeiger jeweils auf den linken und den rechten Unterbaum struct BinBaum { int Element; BinBaum *Lsohn, *Rsohn; }

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume Definition: (B, km) ist ein binärer Suchbaum (über $) :¤:¤ 1.) (B, km) ist ein binärer, knotenmarkierter Baum. 2.) Ist w die Beschriftung der Wurzel w, so ist die Wurzelmarkierung im linken Unterbaum kleiner als w, die Wurzelmarkierung im rechten Unterbaum größer als w. (Jeweils, sofern diese vorhanden.) 3.) Ist (B, km) mit B, B = (w, B 1, B 2 ), so sind (B i,km i ) mit km i := km|B i (i= 1,2) binäre Suchbäume.

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume Beispiel: Aufgaben im Zusammenhang mit (binären) Suchbäumen: Suchen nach Markierungen/Elementen im Suchbaum Aufbau solcher Bäume Abbau, z. B. Entfernen eines Knotens mit Markierung Durchlaufen aller Knoten

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume: Suchen Gegeben: ein binärer Suchbaum (durch Zeiger B darauf), ganze Zahl k Problem: Ist k in durch B bezeichneten Baum gespeichert? Lösungsidee: Stimmt B->Element mit k überein: Antwort ja Gilt B->Element Rsohn Gilt B->Element > k: suche in B->Lsohn Ist B leer, Antwort nein

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume: Suchen Suche nach dem Element 5 Suche nach dem Element 19

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume: Suchen bool Suche (BinBaum * B, int k) { if (B == NULL) return false; else { if (B->Element == k) return true; else if (B->Element < k) Suche(B->Rsohn, k); return Suche(B->Rsohn, k); else if (B->Element > k) Suche(B->Lsohn, k); return Suche(B->Lsohn, k); } }

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume: Einfügen Aufbau durch wiederholtes Einfügen in einen leeren binären Suchbaum Einfügeoperation für binären Suchbaum * B und eine ganze Zahl k –B == NULL : erzeuge neuen Knoten, weise ihn B zu und setze B->Element = k –B != NULL B->Element RSohn B->Element > k : Einfügen von k in B->LSohn

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume: Einfügen BinBaum *Einfuegen (BinBaum * B, int k) { if (B == NULL){ Binbaum *Hilf = new BinBaum; Hilf->Element = k; Hilf->Lsohn = Hilf->Rsohn = NULL; return Hilf; } else { if (B->Element < k) B->Rsohn = Einfuegen(B->Rsohn, k); else if (B->Element > k) B->Lsohn = Einfuegen(B->Lsohn, k); return B; } }

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Binäre Suchbäume: Einfügen Rekursion wichtiger Bestandteil der Funktion Idee: –suche den Unterbaum, in den eingefügt werden soll, –füge in den Unterbaum ein, –weise diesem Unterbaum das Resultat der Einfügung zu.

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich weise dem Unterbaum das Resultat der Einfügung zu Kommentar: Einfügen if (B->Element < k) B->Rsohn = Einfuegen(B->Rsohn, k); else if (B->Element > k) B->Lsohn = Einfuegen(B->Lsohn, k); return B; Suche den Unterbaum, in den eingefügt wird

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Analyse: Einfügen Wie schnell geht das eigentlich? Maß für die Güte eines Algorithmus: –Anzahl von Operationen und –Speicherplatz-Verbrauch hier: –Speicherplatz: pro Knoten eine Instanz von BinBaum, also relativ uninteressant. –Operationen sind hier Vergleiche: interessant

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Analyse: Einfügen Frage: wieviele Vergleiche sind beim Einfügen (oder bei der erfolglosen Suche) notwendig? Antwort: nicht so leicht zu geben: –ist der günstigste Fall gemeint? (klar: 1) –ist der ungünstigste Fall gemeint? (auch ziemlich klar: längster Pfad im Baum) –ist der durchschnittliche Fall gemeint? (völlig unklar)

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen: ungünstigster Fall Erfolglose Suche: –suche von der Wurzel zu einem Blatt, jeder Knoten entspricht einem Vergleich. Höhe eines Baums: –gibt den längsten Pfad von der Wurzel zu einem Blatt an. Ist rekursiv definiert Höhe des leeren Baums ist 0, Höhe eines nicht-leeren Baums ist 1 + max{Höhe Lsohn, Höhe Rsohn }

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Höhe eines binären Baums Der Baum hat die Höhe 5

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen: ungünstigster Fall Es gilt der Satz: Ein binärer Baum der Höhe n hat zwischen n und 2 n - 1 Knoten. –Daraus folgt: k Knoten können in einem binären Baum gespeichert werden, der eine Höhe zwischen ~log 2 k und k hat –Also: der schlechteste Fall bei der erfolglosen Suche in einem binären Suchbaum mit k Elementen liegt bei k Vergleichsoperationen

Kap 8: Binäre Bäume + SuchenVorl EINI-I"Prof. Dr. G. Dittrich Suchen: zu erwartender Fall Die erfolglose Suche in einem binären Suchbaum mit k Elementen erfordert im Durchschnitt proportional zu log k Vergleichsoperationen. Recht kompliziert herzuleiten.