Algorithmen und Datenstrukturen II
|
|
|
- Emma Kolbe
- vor 8 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung III: D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 15. Juni 2009, c 2009 D.Rösner D. Rösner AuD II
2 Gliederung 1 Algorithmen auf Texten Einführung Standard-Trie Komprimierter Trie Suffix-Trie D. Rösner AuD II
3 Einführung Text wird vorverarbeitet (und nicht Muster wie bei Boyer-Moore bzw. KPM) besonders sinnvoll, wenn eine Reihe von Anfragen auf einem festen Text erfolgen Trie baum-basierte Datenstruktur zum Speichern von Strings, um schnellen Musterabgleich (engl. pattern matching) zu ermöglichen hauptsächliche Anwendung: im Information Retrieval daher auch der Name: Retrieval s.a. [GT06], Ch D. Rösner AuD II
4 Einführung Definition: Standard- Sei S eine Menge von s Strings aus dem Alphabet Σ so dass kein String in S Präfix eines anderen String. Ein Standard-Trie für S ist ein geordneter Baum T mit folgenden Eigenschaften: Jeder Knoten von T, außer der Wurzel, ist mit einem Zeichen von Σ markiert. Die Anordnung der Kinder eines internen Knoten von T ist durch eine kanonische Anordnung des Alphabets Σ bestimmt. T hat s externe Knoten, die jeweils mit einem String aus S assoziiert, so dass die Konkatenation der Marken der Knoten auf dem Pfad von der Wurzel zu einem externen Knoten ν von T den mit ν assoziierten String ergibt. s.a. [GT06], Ch D. Rösner AuD II
5 Standard-Trie d j M e i a a r e g n u t n s Abbildung: Standard-Trie zu den Wörtern aus dem Satz der Mann jagt die Maus D. Rösner AuD II
6 Standard-Trie Bemerkungen: Ein Trie T repräsentiert die Strings von S durch Pfade von der Wurzel zu den externen Knoten. Die Forderung, dass kein String in S Präfix eines anderen, stellt sicher, dass jeder String eindeutig mit einem externen Knoten assoziiert. Durch Hinzufügen eines Spezialzeichens, das nicht in Σ, ans Ende jedes Strings, ist diese Bedingung immer erfüllbar. Wenn d Größe des Alphabet, dann hat jeder interne Knoten zwischen 1 und d Kinder. Jeder Pfad von Wurzel von T zu einem internen Knoten v in Tiefe i entspricht dem i-zeichen-präfix X[0... i-1] eines Strings X aus S. s.a. [GT06], Ch D. Rösner AuD II
7 Standard-Trie d j M e i a a r e g n u [0] [14] t n s [9] [4] [18] Abbildung: Standard-Trie zu den Wörtern aus dem Satz der Mann jagt die Maus mit Information zum Vorkommen der Wörter D. Rösner AuD II
8 Standard-Trie Implementation eines Trie als Baum mit Zeichen in seinen Knoten. weitere Struktureigenschaften eines Standard- zu einer Menge S von s Strings der Gesamtlänge n aus einem Alphabet der Größe d: Die Höhe von T ist gleich der Länge des längsten Strings in S. Die Zahl der Knoten von T ist O(n). Schlechtester Fall: keine zwei Strings teilen einen gemeinsamen nichtleeren Präfix. s.a. [GT06], Ch D. Rösner AuD II
9 Standard-Trie Trie T auch zum Implementieren eines Wörterbuchs, wobei die Strings in S die Schlüssel. Die Suche nach einem String X erfolgt durch zeichenweises Abgleichen von der Wurzel ausgehend. Aufwand für einen String der Länge m ist O(dm) für d = Σ Begründung: besucht werden höchstens m+1 Knoten und in jedem Knoten wird O(d) Zeit (zur Auswahl des Folgeknotens) verbraucht. Weitere Verbesserung möglich, wenn die Folgeknoten so implementiert, dass der Zugriff in O(1) oder O(logd) erfolgen kann (z.b. durch Hashtable bzw. Look-up-table) s.a. [GT06], Ch D. Rösner AuD II
10 Standard-Trie besonders geeignet für sog. Wortabgleich (engl. word matching), d.h. Suche nach exaktem Vorkommen eines Wort in einem Text bei Verwendung eines benötigt der Abgleich beim word matching mit einem Muster der Länge m O(dm) Zeit unabhängig von der Größe des Texts (mit d = Σ ) auch geeignet für sog. Präfix-Abgleich (engl. prefix matching): Gegeben ist ein String X und es werden alle Strings in S gesucht, die X als Präfix enthalten. das Suchen nach andersartigen Vorkommen von Mustern im Text (z.b. Suche nach Vorkommen als Suffix oder nach Vorkommen, die Wörter überspannen) können mit nicht effizient erfolgen s.a. [GT06], Ch D. Rösner AuD II
11 Standard-Trie Aufbau eines Standard-Trie: kann inkrementell erfolgen, d.h. Wörter werden nacheinander in Trie eingefügt wenn ein String X noch nicht im Trie wird zunächst versucht, den mit X assoziierten Pfad zu verfolgen dieser geht bei einem internen Knoten ν nicht weiter, bevor Ende von X erreicht für die verbleibenden Zeichen in X wird neue Kette von Knotennachkommen von ν kreiert Aufwand für Einfügen : O(dm) Aufwand für Aufbau des gesamten Trie zu S: O(dn) mit n Gesamtlänge der Strings in S s.a. [GT06], Ch D. Rösner AuD II
12 Komprimierter Trie ein komprimierter Trie unterscheidet sich von einem Standard-Trie dadurch, dass jeder interne Knoten mindestens zwei Kindknoten besitzt. Aus einem Standard-Trie wird ein komprimierter Trie gewonnen, indem Ketten aufeinanderfolgender Knoten mit nur jeweils einem Kind zu einer Kante verschmolzen werden. s.a. [GT06], Ch D. Rösner AuD II
13 Komprimierter Trie d jagt Ma er ie nn us Abbildung: Komprimierter Trie zu den Wörtern aus dem Satz der Mann jagt die Maus D. Rösner AuD II
14 Komprimierter Trie Definitionen: Sei T ein Standard-Trie. Ein vom Wurzelknoten verschiedener interner Knoten ν heisst redundant, wenn ν nur ein Kind hat. Eine Kette von k 2 Kanten, (ν 0, ν 1 )(ν 1, ν 2 )...(ν k 1, ν k ), ist redundant wenn: ν i ist redundant für i = 1,..., k-1. ν 0 und ν k sind nicht redundant. s.a. [GT06], Ch D. Rösner AuD II
15 Komprimierter Trie Ein Standard-Trie T kann in einen komprimierten Trie umgewandelt werden, indem jede redundante Kette (ν 0,ν 1 )(ν 1,ν 2 )... (ν k 1,ν k ) von k 2 Kanten ersetzt wird durch eine einzige Kante (ν 0,ν k ), wobei ν k als Label den durch die Konkatenation der Zeichen aus den Knoten ν 1,...,ν k entstehenden String erhält. s.a. [GT06], Ch D. Rösner AuD II
16 Komprimierter Trie Ein komprimierter Trie, der eine Kollektion S von s Strings aus einem Alphabet der Grösse d speichert, hat folgende Eigenschaften: Jeder interne Knoten hat mindestens zwei und höchstens d Kinder. T hat s externe Knoten. Die Zahl der Knoten von T ist O(s). Bemerkung: Zahl der Knoten von T also nur noch von der Zahl s unterschiedlicher Strings, aber nicht mehr von ihrer Gesamtlänge n (wie bei Standard-Trie) abhängig. s.a. [GT06], Ch , Prop D. Rösner AuD II
17 Suffix-Trie ein sog. Suffix-Trie liegt vor, wenn es sich bei den String in der Kollektion S um alle Suffixe eines Strings X handelt man spricht dann auch von Suffix-Baum (engl. suffix tree) oder Positionsbaum (engl. position tree) s.a. [GT06], Ch D. Rösner AuD II
18 Suffix-Trie e i mi nimize ze mize nimize ze nimize ze Abbildung: Suffix-Trie zum String minimize ; vgl. [GT06], Fig (a) D. Rösner AuD II
19 Suffix-Trie 7,7 1,1 0,1 2,7 6,7 4,7 2,7 6,7 2,7 6,7 Abbildung: Kompakte Version des Suffix-Trie zum String minimize ; Paar i,j verweist auf Substring X[i..j]; vgl. [GT06], Fig (b) D. Rösner AuD II
20 Suffix-Trie Musterabgleich mit einem Suffix-Trie Pseudocode: Algorithm suffixtriematch (T,P) Input: Kompakter Suffix-Trie T für einen Text X und Muster P Output: Index des Anfangs des ersten Teilstrings von X, der mit P übereinstimmt, oder Info, dass P nicht in X enthalten p P.length() {Länge des Pattern} j 0 {Start des Pattern-Suffix} ν T.root() repeat f true {kein Kind erfolgreich bearbeitet} for each child w of ν do... s. nächste Seite until f or T.isExternal(ν) return P kein Teilstring von X s.a. [GT06], Ch D. Rösner AuD II
21 Suffix-Trie Pseudocode (cont.): for each child w of ν do i start(ν) if (P[j] = T[i]) then x end(w)-i+1 if p x then if (P[j..j+p-1] = X[i..i+p-1]) then return i - j {match } else return P kein Teilstring von X else if (P[j..j+x-1] = X[i..i+x-1]) then p p - x {Länge des verbleibenden Pattern} j j + x {neuer Start des Pattern-Suffix} ν w f false s.a. [GT06], Ch break out of the for loop D. Rösner AuD II
22 Suffix-Trie wichtige Anwendung von Suffix-: in Web-Suchmaschinen s.a. [GT06], Ch D. Rösner AuD II
23 Literatur: I Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in Java. John Wiley & Sons, New York, ISBN ; ISBN ;4th edition. D. Rösner AuD II
Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz
Gliederung Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg
Gliederung. Algorithmen und Datenstrukturen I. Binäre Bäume: ADT Heap. inäre Bäume: ADT Heap. Abstrakte Datentypen IV. D. Rösner
Gliederung Algorithmen und Datenstrukturen I Abstrakte Datentypen IV D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2009/10,
Algorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
Repetitive Strukturen
Repetitive Strukturen Andreas Liebig Philipp Muigg ökhan Ibis Repetitive Strukturen, (z.b. sich wiederholende Strings), haben eine große Bedeutung in verschiedenen Anwendungen, wie z.b. Molekularbiologie,
Text Analytics. Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk
Text Analytics Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk Nils Alberti & Jürgen Eicher, 12. Juni 2008 Einführung Stringmatching bisher: Analyse des Patterns zum schnellen
Effiziente Algorithmen 2
Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
Algorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest
Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,
Gliederung. Algorithmen und Datenstrukturen II. ADT Graph. ADT Graph. Graphen in JAVA. Klasse Graph Suche Breitensuche Tiefensuche. D.
Gliederung Algorithmen und Datenstrukturen II Graphen in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 20. April
Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany
Zeichenketten 16.04.2018 Benedikt Straßner Programming Systems Group Martensstr. 3 91058 Erlangen Germany Übersicht String Matching Algorithmen Naive Stringsuche Knuth Morris Pratt (KMP) Algorithmus Boyer-Moore
Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz
Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und
Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
Programmierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 22. Juni 2009, c 2009 D.Rösner D. Rösner PGP 2009...
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 4 Suchen in Texten Version vom: 15. November 2016 1 / 39 Vorlesung 8 15. November
Gliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension
Gliederung Algorithmen und Datenstrukturen I D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10, 16. Oktober 2009, c
String - Matching. Kapitel Definition
Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der
Algorithmen und Datenstrukturen I
Algorithmen und Datenstrukturen I Sortierverfahren D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2009/10, 18. Januar 2010,
Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41
Zeichenketten Michael Fularczyk 17.05.2011 Michael Fularczyk Zeichenketten 17.05.2011 1 / 41 Inhalt Zeichenketten Zeichensätze Darstellung Suchverfahren naive Stringsuche Knuth-Morris-Pratt Boyer-Moore
8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen
8.4 Suffixbäume Ziel: Datenstruktur, die effiziente Operationen auf (langen) Zeichenketten unterstützt: - Suche Teilzeichenkette (Substring) - Präfix - längste sich wiederholende Zeichenkette -... Anwendungen:
Kapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
Algorithmische Bioinformatik
Algorithmische Bioinformatik Suffixbäume Ulf Leser Wissensmanagement in der Bioinformatik Ziele Perspektivenwechsel: Von Online zu Offline-Stringmatching Verständnis von Suffix-Bäumen als Datenstruktur
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
Zeichenketten. 29. April 2015 Benedikt Lorch. Benedikt Lorch Zeichenketten April
Vorlage Zeichenketten 29. April 2015 Benedikt Lorch Benedikt Lorch Zeichenketten 17. 29. April 2015 1 Motivation String Matching in the DNA Alphabet 1 Σ DNA = {A, G, C, T} DNA Text: 1 982 672 Zeichen Suchstring:
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
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
2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
Tutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
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:
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste
Algorithmen auf Sequenzen
Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen
Musterlösung Datenstrukturen und Algorithmen
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 Peter Widmayer
Mehrwegbäume Motivation
Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung
Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen II Suchen in Texten Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 27.03.2018 06:32 Inhaltsverzeichnis Ein Text.......................................
Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
Datenstrukturen und Algorithmen D-INFK
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 Peter Widmayer
Lösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I
Lösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I 12.08.2006 Seite 2 Lösungsvorschläge zur Klausur vom 12.08.2006 Kurs 1661 Datenstrukturen I Aufgabe 1 (a) algebra sammlung sorts sammlung, marke,
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
Effiziente Algorithmen und Komplexitätstheorie
1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale
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
Gliederung. Funktionale Programmierung. Pattern matching in Haskell. Pattern matching in ERLANG. Materialien zur Vorlesung
Gliederung Funktionale Programmierung Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 7.
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Kap. 19: Suffixbäume Faculty of Technology [email protected] Vorlesung, U. Bielefeld, Sommer 2011 Bekannte Verfahren zur exakten Suche in Zeichenreihen Exakte
Gliederung. Informationsextraktion Materialien zur Vorlesung. Entwicklung eines regex für Firmennamen. Entwicklung eines regex für Firmennamen
Gliederung Informationsextraktion Materialien zur Vorlesung Beispiel: reguläre Ausdrücke für Firmennamen 1 D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke
Datenstrukturen und Algorithmen SS07
Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage [email protected] belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum
Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume
Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume M.O.Franz; Oktober 07 Algorithmen und Datenstrukturen - B-Bäume 1-1
Verkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
Suchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,
Knuth Morris Pratt Algorithmus
Knuth Morris Pratt Algorithmus PS: Stringmatching Algorithmen in C Dozent: Max Hadersbeck Referentinnen: Joanna Rymarska, Alfina Druzhkova Datum: 5.07.2006 Folien: www.cip.ifi.lmu.de/~droujkov Agenda Historisches
Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).
2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form
Fortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume
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
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
