Algorithmen und Datenstrukturen

Ähnliche Dokumente
Uwe Schöning. Algorithmik. Spektrum Akademischer Verlag Heidelberg Berlin

Algorithmen und Datenstrukturen

Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

Algorithmen und Datenstrukturen 13. ZUSAMMENFASSUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor

Algorithmen und Datenstrukturen

Grundlegende Algorithmen

Algorithmen und Datenstrukturen

Fragenkatalog 1. Kurseinheit

2. Klausur Datenstrukturen und Algorithmen SS 2014

Algorithmen - Eine Einführung

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

SS14 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel

Komplexität von Algorithmen SS 2011

NAME, VORNAME: Studiennummer: Matrikel:

Inhaltsverzeichnis. I Grundlegende Konzepte 1. xiii

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java

Algorithmen und Datenstrukturen

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

SORTIEREN MIT BÄUMEN - HEAPSORT

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Zum Buch Hinweise Handhabung des Buchs Website In eigener Sache... 19

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Verteilte Algorithmen und Datenstrukturen. Prof. Dr. Christian Scheideler Institut für Informatik Universität Paderborn

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Organisatorisches. Theoretische Informatik 3 WS 2005/06. Empfohlene Literatur. Übersicht

Algorithmen 1 Tutorium

Modulbeschreibung für FND1 Fundamentals of Algorithms and Datastructures

LEHRVERANSTALTUNGSBESCHREIBUNG

ADS: Algorithmen und Datenstrukturen 1

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315

Detaillierte Gliederung Algorithmen und Datenstrukturen (für ET/IT)

Informatik II, SS 2014

Algorithmen und Datenstrukturen

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

Datenstrukturen, Algorithmen und Programmierung 2

Algorithmen und Datenstrukturen (IN5004)

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Datenstrukturen und Algorithmen (SS 2013)

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 1 Organisation

Der Rekursionsbaum hat

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Klausur Algorithmen und Datenstrukturen

Grundlagen der Informatik

Algorithmen und Datenstrukturen 1. Vorlesung

A Z. Sachverzeichnis. Ω-Notation, 14 Θ-Notation, 14

Programmiertechnik II WS 2017/18

Algorithmen - Eine Einführung

Algorithmen & Datenstrukturen

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Datenstrukturen und Algorithmen

Informatik II Prüfungsvorbereitungskurs

Algorithmen und Datenstrukturen 1. Vorlesung

Diskrete Mathematik I

Einführung in die Informatik IV

Grundlegende Algorithmen mit Java

Algorithmen & Komplexität

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

Algorithmen und Datenstrukturen (fu r ET/IT) Personen. Programm heute. Wintersemester 2012/13. Wintersemester 2012/13. Dr.

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser. 1 Organisation

Klausur Algorithmen und Datenstrukturen SS 2017

Randomisierte Algorithmen und probabilistische Analyse

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Studienbücher Informatik. Reihe herausgegeben von W. Hower, Albstadt-Ebingen, Deutschland

Vorlesung 2 KÜRZESTE WEGE

Informatik II, SS 2018

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. Data Structures and Algorithmus. Addison-Wesley, Reading, NY,

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT)

Knuth Morris Pratt Algorithmus

Informatik II Prüfungsvorbereitungskurs

Grundlagen der Informatik

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Personen. Termine. Vorlesung. Sommersemester Dr. Tobias Lasser

Algorithmen und Datenstrukturen 12

, i =, i 2 = 1 2. f (n)

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Algorithmen und Datenstrukturen

Effiziente Algorithmen

Aufgabe 1 Allgemeine Fragen. a) Beschreiben Sie, was man unter einer Datenstruktur versteht.

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Diskrete Algorithmische Mathematik Lorenz ADM 1

Algorithmen und Datenstrukturen I

Übung Algorithmen und Datenstrukturen

3.2. Divide-and-Conquer-Methoden

Transkript:

Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik VI Algorithmen und Datenstrukturen Vorlesungsmitschrift zur Vorlesung im SS 2004 Prof. Dr.-Ing. H. Ney Letzte Überarbeitung: 20. Juli 2004 Thomas Deselaers

1 Grundlagen 8 1.1 Einführung.................................. 8 1.1.1 Problemstellungen.......................... 8 1.1.2 Aktualität des Themas........................ 9 1.1.3 Ziele der Vorlesung.......................... 9 1.1.4 Hinweis auf das didaktische Problem der Vorlesung........ 9 1.1.5 Vorgehensweise............................ 10 1.1.6 Datenstrukturen........................... 10 1.2 Algorithmen und Komplexität........................ 11 1.2.1 Random-Access-Machine (RAM).................. 13 1.2.2 Komplexitätsklassen......................... 16 1.2.3 O-Notation für asymptotische Aussagen.............. 17 1.2.4 Regeln für die Laufzeitanalyse.................... 19 1.2.5 Beispiel: Fibonacci-Zahlen...................... 21 1.2.6 Beispiel: Fakultät........................... 24 1.3 Datenstrukturen............................... 24 1.3.1 Datentypen.............................. 24 1.3.2 Listen................................. 27 1.3.3 Stacks................................. 37 1.3.4 Queues................................. 39 1.3.5 Bäume................................. 41 1.3.6 Abstrakte Datentypen........................ 52 1.4 Entwurfsmethoden.............................. 54 1.4.1 Divide-and-Conquer-Strategie.................... 54 1.4.2 Dynamische Programmierung.................... 57 1.4.3 Memoization............................. 60 1.5 Rekursionsgleichungen............................ 61 1.5.1 Sukzessives Einsetzen......................... 61 1.5.2 Master-Theorem für Rekursionsgleichungen............. 62 1.5.3 Rekursionsungleichungen....................... 66 2

Ney: Datenstrukturen und Algorithmen, SS 2004 2 Sortieren 68 2.1 Einführung.................................. 68 2.2 Elementare Sortierverfahren......................... 70 2.2.1 SelectionSort............................. 70 2.2.2 InsertionSort............................. 72 2.2.3 BubbleSort.............................. 75 2.2.4 Indirektes Sortieren.......................... 79 2.2.5 BucketSort.............................. 81 2.3 QuickSort................................... 83 2.3.1 Beweis der Schranken von n k=m 1/k mittels Integral-Methode. 93 2.4 HeapSort.................................... 94 2.4.1 Komplexitätsanalyse von HeapSort................. 98 2.5 Untere und obere Schranken für das Sortierproblem............ 100 2.6 Schranken für n!............................... 103 2.7 MergeSort................................... 106 2.8 Zusammenfassung............................... 106 3 Suchen in Mengen 107 3.1 Problemstellung................................ 107 3.2 Einfache Implementierungen......................... 109 3.2.1 Ungeordnete Arrays und Listen................... 109 3.2.2 Vergleichsbasierte Methoden..................... 109 3.2.3 Bitvektordarstellung (Kleines Universum)............. 112 3.2.4 Spezielle Array-Implementierung.................. 113 3.3 Hashing.................................... 116 3.3.1 Begriffe und Unterscheidung..................... 116 3.3.2 Hashfunktionen............................ 117 3.3.3 Wahrscheinlichkeit von Kollisionen................. 119 3.3.4 Open Hashing (Hashing mit Verkettung).............. 122 3.3.5 Closed Hashing (Hashing mit offener Adressierung)........ 124 3.3.6 Zusammenfassung der Hashverfahren................ 130 3.4 Binäre Suchbäume.............................. 131 3.4.1 Allgemeine binäre Suchbäume.................... 131 3.4.2 Der optimale binäre Suchbaum................... 144 3.5 Balancierte Bäume.............................. 150 3.5.1 AVL-Bäume.............................. 151 3.5.2 (a,b)-bäume.............................. 156 3.6 Priority Queue und Heap........................... 158 4 Graphen 160 4.1 Motivation: Wozu braucht man Graphen?................. 160 4.2 Definitionen und Graph-Darstellungen................... 161 4.2.1 Graph-Darstellungen......................... 162 4.2.2 Programme zu den Darstellungen.................. 164 c RWTH Aachen 3 20. Juli 2004

Ney: Datenstrukturen und Algorithmen, SS 2004 4.3 Graph-Durchlauf............................... 165 4.3.1 Programm für den Graph-Durchlauf................ 166 4.4 Kürzeste Wege................................ 171 4.4.1 Dijkstra-Algorithmus (Single-Source Best Path).......... 171 4.4.2 DAGs und kürzeste Wege...................... 178 4.4.3 Floyd-Algorithmus (All-Pairs Best Path).............. 180 4.4.4 Warshall-Algorithmus........................ 181 4.5 Minimaler Spannbaum............................ 183 4.5.1 Definitionen.............................. 183 4.5.2 MST Property............................. 183 4.5.3 Prim-Algorithmus........................... 184 4.6 Zusammenfassung............................... 187 5 Ausgewählte Themen 188 5.1 Dynamische Programmierung........................ 188 5.1.1 Typische Vorgehensweise bei der dynamischen Programmierung. 188 5.1.2 Rucksackproblem........................... 188 5.1.3 Beispiele für dynamische Programmierung............. 192 5.2 Exact String Matching............................ 193 5.2.1 Naiver Algorithmus (brute force).................. 193 5.2.2 Knuth-Morris-Pratt-Algorithmus (KMP-Algorithmus)....... 195 5.3 Approximate String Matching........................ 200 5.3.1 Longest Common Subsequence.................... 200 5.3.2 Shortest Common Supersequence.................. 203 5.3.3 Edit Distance............................. 205 5.3.4 Verfeinerungen der Editier-Distanz................. 208 5.4 Traveling Salesman Problem......................... 211 5.4.1 Problemstellung............................ 211 5.4.2 Exhaustive Search.......................... 212 5.4.3 Branch & Bound........................... 213 5.4.4 Dynamische Programmierung.................... 216 5.4.5 A................................... 219 c RWTH Aachen 4 20. Juli 2004

Literaturverzeichnis [Cormen et al.] T.H. Cormen, C.E. Leiserson, R.L. Rivest: Introduction to Algorithms. MIT press / McGraw Hill, 10th printing, 1993. [Sedgewick 02] R. Sedgewick: Algorithms in Java, 3rd ed., Addison-Wesley, 2002. [Sedgewick 98] R. Sedgewick: Algorithms, 2nd ed., Addison-Wesley, 1998. [Sedgewick 88] R. Sedgewick: Algorithms. Addison-Wesley, 1988. [Sedgewick 93] R. Sedgewick: Algorithms in Modula-3. Addison-Wesley, 1993. [Schöning 97] U. Schöning: Algorithmen kurz gefasst. Spektrum Akad. Verl., 1997, vergriffen. [Schöning 01] U. Schöning: Algorithmik. Spektrum Akad. Verl., 2001. [Güting] R.H. Güting: Datenstrukturen und Algorithmen. Teubner, 1992. [Aho et al. 83] [Aho et al. 74] A.V. Aho, J.E. Hopcroft, J.D. Ullman: Data Structures and Algorithms. Addison-Wesley, 1983. A.V. Aho, J.E. Hopcroft, J.D. Ullman: The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974. [Mehlhorn] K. Mehlhorn: Datenstrukturen und effiziente Algorithmen. Bde 1,2,3; (primär Band 1: Sortieren und Suchen ), Teubner 1988. (Bde 2+3 vergriffen) [Wirth] N. Wirth: Algorithmen und Datenstrukturen mit Modula-2. 4. Auflage, Teubner 1986. [Aigner] M. Aigner: Diskrete Mathematik. Vieweg Studium, 1993. [Ottmann] T. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen. 4.Auflage, Spektrum Akademischer Verlag, 2002 5