Algorithmen und Datenstrukturen

Ähnliche Dokumente
Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

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

Grundlegende Algorithmen

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Algorithmen - Eine Einführung

Vorlesung Datenstrukturen

NAME, VORNAME: Studiennummer: Matrikel:

Algorithmen und Datenstrukturen

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

Wie wird ein Graph dargestellt?

Algorithmen und Datenstrukturen

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

Inhaltsverzeichnis. Teil 1 Grundlagen 23

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

Uwe Schöning. Algorithmik. Spektrum Akademischer Verlag Heidelberg Berlin

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Algorithmen - Eine Einführung

Algorithmen und Datenstrukturen

Karlsruher Institut für Technologie. Klausur Algorithmen I

Fragenkatalog 1. Kurseinheit

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

Algorithmen 1 Tutorium

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Algorithmen. Robert Sedgewick Princeton University ADDISON-WESLEY

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

Klausur Algorithmen und Datenstrukturen

Algorithmen & Komplexität

Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Beispiel-Prüfungsfragen für Effiziente Algorithmen M. Dietzfelbinger, 15. Juli 2011, leicht korrigiert 27. Juli 2011

Beispiel-Prüfungsfragen Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli 2013.

Algorithmen und Datenstrukturen

Aufgaben zur Klausurvorbereitung

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

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Algorithmen und Datenstrukturen

2. Klausur Datenstrukturen und Algorithmen SS 2014

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Prüfung Datenstrukturen und Algorithmen, D-INFK. Datenstrukturen & Algorithmen

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

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

Sortierverfahren. Laufzeitkomplexität. exponentiell

Methoden für den Entwurf von Algorithmen

Grundlagen der Informatik

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

DATENSTRUKTUREN UND ALGORITHMEN

Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?

Vorlesung Datenstrukturen

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel

Datenstrukturen und Algorithmen D-INFK

Informatik II Prüfungsvorbereitungskurs

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Sortieren & Co. KIT Institut für Theoretische Informatik

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

Datenstrukturen. einfach verkettete Liste

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Vorlesung Datenstrukturen

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Algorithmen und Datenstrukturen 2-1. Seminar -

Klausur Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Grundlegende Algorithmen mit Java

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Kapitel 9. und

Effiziente Algorithmen

Übungsklausur Algorithmen I

Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen

Transkript:

Martin Dietzfelbinger Kurt Mehlhorn Peter Sanders Algorithmen und Datenstrukturen Die Grundwerkzeuge Springer Vieweg

1 Vorspeise: Arithmetik für ganze Zahlen 1 1.1 Addition 2 1.2 Multiplikation: Die Schulmethode 3 1.3 Ergebnisprüfung 7 1.4 Eine rekursive Version der Schulmethode 8 1.5 Karatsuba-Multiplikation 10 1.6 Algorithm Engineering 13 1.7 Die Programme 15 1.8 Beweise für Lemma 1.5 und Satz 1.7 18 1.9 Implementierungsaspekte 20 1.10 Historische Anmerkungen und weitere Ergebnisse 21 2 Einleitung 23 2.1 Asymptotische Notation 24 2.2 Das Maschinenmodell 28 2.3 Pseudocode 32 2.4 Erstellung korrekter Algorithmen und Programme 39 2.5 Ein Beispiel: Binäre Suche 42 2.6 Grundlagen der Algorithmenanalyse 44 2.7 Analyse des mittleren Falles 52 2.8 Randomisierte Algorithmen 57 2.9 Graphen 61 2.10 P und NP 68 2.11 Implementierungsaspekte 72 2.12 Historische Anmerkungen und weitere Ergebnisse 73 3 Darstellung von Folgen durch Arrays und verkettete Listen 75 3.1 Verkettete Listen 76 3.2 Unbeschränkte Arrays 83 3.3 *Amortisierte Analyse 90 3.4 Stapel und Warteschlangen 94

X 3.5 Listen und Arrays im Vergleich 98 3.6 Implementierungsaspekte 99 3.7 Historische Anmerkungen und weitere Ergebnisse 101 4 Hashtabeilen und assoziative Arrays 103 4.1 Hashing mit Verkettung 106 4.2 Universelles Hashing 109 4.3 Hashing mit linearem Sondieren 115 4.4 Verkettung und lineares Sondieren im Vergleich 117 4.5 *Perfektes Hashing 118 4.6 Implementierungsaspekte 121 4.7 Historische Anmerkungen und weitere Ergebnisse 123 5 Sortieren und Auswählen 127 5.1 Einfache Sortierverfahren 130 5.2 Mergesort - ein 0(n log n)-sortieralgorithmus 132 5.3 Eine untere Schranke 135 5.4 Quicksort 138 5.5 Das Auswahlproblem 145 5.6 Brechen der unteren Schranke 147 5.7 *Externes Sortieren 150 5.8 Implementierungsaspekte 155 5.9 Historische Anmerkungen und weitere Ergebnisse 157 6 Prioritätswarteschlangen 161 6.1 Binärheaps 163 6.2 Adressierbare Prioritätswarteschlangen 169 6.3 *Externspeicher 177 6.4 Implementierungsaspekte 179 6.5 Historische Anmerkungen und weitere Ergebnisse 180 7 Sortierte Folgen 183 7.1 Binäre Suchbäume 186 7.2 (a, b)-bäume und Rot-Schwarz-Bäume 189 7.3 Weitere Operationen 197 7.4 Amortisierte Analyse von Einfügungen und Löschungen 200 7.5 Erweiterte Suchbäume 203 7.6 Implementierungsaspekte 205 7.7 Historische Anmerkungen und weitere Ergebnisse 208 8 Darstellung von Graphen 211 8.1 Ungeordnete Kantenfolgen 212 8.2 Adjazenzarrays - Statische Graphen 213 8.3 Adjazenzlisten - Dynamische Graphen 214 8.4 Adjazenzmatrizen 216 8.5 Implizite Darstellungen 217

XI 8.6 Implementierungsaspekte 218 8.7 Historische Anmerkungen und weitere Ergebnisse 219 9 Graphdurchläufe 221 9.1 Breitensuche 222 9.2 Tiefensuche 224 9.3 Implementierungsaspekte 239 9.4 Historische Anmerkungen und weitere Ergebnisse 240 10 Kürzeste Wege 243 10.1 Von Grundbegriffen zu einer allgemeinen Methode 245 10.2 Gerichtete azyklische Graphen 249 10.3 Nichtnegative Kantenkosten (Der Algorithmus von Dijkstra) 250 10.4 *Durchschnittsanalyse des Algorithmus von Dijkstra 254 10.5 Monotone ganzzahlige Prioritätswarteschlangen 256 10.6 Beliebige Kantenkosten (Der Algorithmus von Bellman und Ford). 263 10.7 Kürzeste Wege zwischen allen Knotenpaaren und Knotenpotenziale 265 10.8 Kürzeste-Wege-Anfragen 267 10.9 Implementierungsaspekte 273 10.10 Historische Anmerkungen und weitere Ergebnisse 274 11 Minimale Spannbäume 277 11.1 Schnitteigenschaft und Kreiseigenschaft 278 11.2 Der Algorithmus von Jarnik-Prim 280 11.3 Der Algorithmus von Kruskal 281 11.4 Die Union-Find-Datenstruktur 283 11.5 *Externspeicher 289 11.6 Anwendungen 292 11.7 Implementierungsaspekte 295 11.8 Historische Anmerkungen und weitere Ergebnisse 296 12 Generische Ansätze für Optimierungsprobleme 299 12.1 Lineare Programmierung - ein Black-Box-Lösungsverfahren 301 12.2 Greedy-Algorithmen - Nie zurückschauen! 307 12.3 Dynamische Programmierung - Schrittweiser Aufbau 311 12.4 Systematische Suche - Im Zweifelsfall: Volle Rechenpower! 316 12.5 Lokale Suche - Global denken, lokal handeln! 321 12.6 Evolutionäre Algorithmen 333 12.7 Implementierungsaspekte 335 12.8 Historische Anmerkungen und weitere Ergebnisse 336 A Anhang 339 A.l Mathematische Symbole 339 A.2 Mathematische Begriffe 341 A.3 Grundlagen aus der Wahrscheinlichkeitsrechnung 342 A.4 Einige nützliche Formeln und Abschätzungen 347

XII Literaturverzeichnis 351 Sachverzeichnis 363