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

Ähnliche Dokumente
Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Inhaltsverzeichnis. I Grundlegende Konzepte 1. xiii

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

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

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

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

Algorithmen. Robert Sedgewick Princeton University ADDISON-WESLEY

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

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

Algorithmen und Datenstrukturen

Inhaltsverzeichnis Grundbegriffe der Programmierung Strukturelle Programmierung

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Software Engineering

Schulinterner Lehrplan zum Kernlehrplan für die gymnasiale Oberstufe. Informatik Q2. Stand: 02/2016 Status: Gültig

Java-Grundkurs für Wirtschaftsinformatiker

Fragenkatalog 1. Kurseinheit

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

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

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

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Modellierung und Implementierung von Datenstrukturen mit Java

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

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

Java-Grundkurs für rtschaftsinformatiker

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Lehrplan Informatik. Unterrichtsvorhaben in der Qualikationsphase (Q1) Übersichtsraster: Nr. Beschreibung

Algorithmen und Datenstrukturen (für ET/IT)

Inhaltsverzeichnis. Vorwort

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Informatik 2-stündig

Programmierung in C/C++

Algorithmen und Datenstrukturen

Programmiertechnik II WS 2017/18

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Datenstrukturen und Algorithmen (SS 2013)

Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr.

Grundlegende Algorithmen

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

Inhaltsmodule für einen Grundkurs Informatik in der Qualifikationsphase

Grundlagen der Informatik (I+II)

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Matrikelnr. Name. Vorname

Algorithmen und Datenstrukturen

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

NAME, VORNAME: Studiennummer: Matrikel:

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

Überblick und Wiederholung

Überblick und Wiederholung

Objektorientierte Programmierung (OOP)

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

Grundlagen des Software Engineering

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

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

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

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

Schulinternes Curriculum im Fach Informatik

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Aufgabentabelle. Abschnitt Nr. Themengebiete

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

Algorithmen - Eine Einführung

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.

Informatik II Prüfungsvorbereitungskurs

ADS: Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

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

Algorithmen und Datenstrukturen (für ET/IT)

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

DUDEN. Basiswissen Schule. Informatik Abitur. PAETEC Verlag für Bildungsmedien Berlin : Dudenverlag Mannheim Leipzig Wien Zürich

Überblick und Wiederholung

C für Java-Programmierer

Algorithmen und Datenstrukturen 12

Algorithmen und Datenstrukturen

Unterrichtsvorhaben I: Thema: Wiederholung der objektorientierten Modellierung und Programmierung anhand einer kontextbezogenen Problemstellung

Gliederung der Folien

AlgoDat Fragen zu Vorlesung und Klausur

C für Java- Programmierer

Effektiv Programmieren in С und C++

Inhalt. Einführung in die Strukturierte Programmierung 15

Transkript:

Vorwort 13 Zum Buch.................................................... 15 Hinweise..................................................... 17 Handhabung des Buchs......................................... 18 Website...................................................... 19 In eigener Sache............................................... 19 Einleitung 21 Teil I Algorithmen und Datenstrukturen Grundlagen 25 Kapitel 1 Grundbegriffe und elementare Konzepte 27 1.1 Beispiele für Algorithmen Ein erster Blick auf den Arbeitsgegenstand... 29 1.2 Algorithmus: Begriff und Eigenschaften............................ 32 1.2.1 Begriff................................................ 32 1.2.2 Eigenschaften.......................................... 33 1.3 Elementare Bestandteile von Algorithmen.......................... 35 1.3.1 Datenobjekte und ihre Datentypen......................... 36 1.3.2 Aktionen (auch Anweisungen genannt)..................... 47 1.4 Algorithmen mit ihren Schnittstellen.............................. 56 1.4.1 Algorithmen: Deklaration und Aufruf....................... 57 1.4.2 Funktionsalgorithmen................................... 61 1.4.3 Geräteschnittstellen..................................... 64 1.4.4 Algorithmen und ihre Schnittstellen Zusammenfassung...... 65 1.5 Zur Spezifikationsproblematik von Algorithmen..................... 65 1.6 Darstellungsformen für Algorithmen.............................. 69 1.6.1 Grafische Darstellungsformen für Algorithmen............... 69 1.6.2 Text-basierte Darstellungsformen für Algorithmen............ 73 1.6.3 Zusammenfassung der Darstellungsformen.................. 77 1.7 Algorithmen und Programme.................................... 78 1.7.1 Vom Algorithmus zum Programm.......................... 78 1.7.2 Möglichkeiten für die Ausführung eines Programms........... 79 1.7.3 Unterschiede zwischen Algorithmus und Programm........... 82 Zusammenfassung............................................. 83 Aufgaben..................................................... 84

Kapitel 2 Struktur und systematischer Entwurf von Algorithmen 87 2.1 Grundlegende Konstrukte zur Gestaltung der Struktur von Algorithmen.. 89 2.2 Unbeschränkte Ablaufstruktur und Konsequenzen.................. 90 2.3 Beschränkte Ablaufstrukturen: D-Diagrammkonstrukte............... 94 2.3.1 Transformation unbeschränkter Ablaufstrukturen in D-Diagramme....................................... 95 2.3.2 Transformation nach Knuth.............................. 96 2.3.3 Transformation nach Oulsnam............................ 98 2.4 Erweiterte D-Diagrammkonstrukte................................ 101 2.5 Strukturkomplexität von Algorithmen und strukturierte Programmierung.............................................. 102 2.5.1 Umfangsmetriken...................................... 103 2.5.2 Metriken nach Halstead................................. 103 2.5.3 Strukturmetriken nach McCabe........................... 105 2.5.4 Strukturierte Programmierung............................ 107 2.6 Systematischer Entwurf von Algorithmen: Prinzip und Vorgehensmodell................................... 108 2.6.1 Schrittweise Verfeinerung oder Top-down-Entwurf........... 109 2.6.2 Anwendung des Prinzips der schrittweisen Verfeinerung...... 110 2.6.3 Ein Vorgehensmodell für den Entwurf von Algorithmen....... 116 Zusammenfassung............................................ 119 Aufgaben.................................................... 120 Kapitel 3 Grundkonzepte zur Modellierung von Datenobjekten 123 3.1 Atomare Datenobjekte und -typen................................ 125 3.2 Strukturierte Datenobjekte und -typen............................ 126 3.2.1 Felder................................................ 126 3.2.2 Verbunde............................................. 136 3.2.3 Gegenüberstellung und Kombination von Feldern und Verbunden........................................ 139 3.3 Vernetzte oder dynamische Datenobjekte und -typen................. 141 3.3.1 Zeiger und Zeigerdatentypen............................. 141 3.3.2 Allokieren und Freigeben von Speicher.................... 146 3.4 Verkettete Listen.............................................. 149 3.4.1 Von Feldern zu verketteten Listen......................... 149 3.4.2 Einfach-verkettete Listen................................ 151 3.4.3 Doppelt-verkettete Listen................................ 159 3.5 Bäume, Binärbäume und binäre Suchbäume....................... 162 3.5.1 Bäume............................................... 163 3.5.2 Binärbäume........................................... 164 3.5.3 Binäre Suchbäume..................................... 167 3.6 Datenkapselung und abstrakte Datenstrukturen..................... 171 3.6.1 Kellerspeicher (stack) als abstrakte Datenstruktur............ 174 3.7 Abstrakte Datentypen.......................................... 176 3.7.1 Warteschlange (queue) als abstrakter Datentyp............... 177 Zusammenfassung............................................ 180 Aufgaben.................................................... 182 8

Kapitel 4 Rekursive Algorithmen 187 4.1 Begriff Rekursion und Standardbeispiele........................... 190 4.1.1 Fakultätsberechnung.................................... 191 4.1.2 Bildung der Fibonacci-Zahlen............................. 194 4.1.3 Ackermann-Funktion.................................... 198 4.1.4 Primzahlentest......................................... 200 4.2 Ausführung und Terminierung rekursiver Algorithmen............... 202 4.3 Vorgehen beim Entwurf rekursiver Algorithmen..................... 207 4.4 Rekursion und Iteration......................................... 211 4.4.1 Verwandtschaft von Rekursion und Iteration................. 211 4.4.2 Entrekursivierung: Von Rekursion zu Iteration................ 212 4.4.3 Rekursivierung: Von Iteration zu Rekursion.................. 217 4.5 Rekursive Algorithmen auf rekursiven Datenstrukturen............... 218 4.5.1 Rekursive Algorithmen auf verketteten Listen................ 219 4.5.2 Rekursive Algorithmen auf binären (Such-)Bäumen........... 220 Zusammenfassung............................................. 225 Aufgaben..................................................... 226 Kapitel 5 Laufzeitkomplexität von Algorithmen 229 5.1 Komplexität von Algorithmen: Begriffe und Abgrenzung.............. 231 5.2 Laufzeitmessung und Programmprofil............................. 234 5.3 Feinanalyse und Laufzeitberechnung.............................. 237 5.4 Grobanalyse.................................................. 242 5.5 Asymptotische Laufzeitkomplexität und O-Notation.................. 249 Zusammenfassung............................................. 258 Aufgaben..................................................... 259 Teil II Elementare Algorithmen für Standardaufgaben eine Auswahl 263 Kapitel 6 Suchalgorithmen 265 6.1 Anwendungsgebiete und Anforderungen........................... 267 6.2 Sequenzielle Suche............................................ 269 6.2.1 Sequenzielle Suche in Feldern............................ 270 6.2.2 Sequenzielle Suche in verketteten Listen.................... 271 6.2.3 Sequenzielle Suche in Binärbäumen........................ 272 6.2.4 Sequenzielle Suche in beliebigen Behältern mittels Iteratoren... 273 6.2.5 Laufzeitkomplexität der sequenziellen Suche................ 274 6.3 Binäre Suche................................................. 275 6.3.1 Binäre Suche in sortierten Feldern......................... 276 6.3.2 Binäre Suche in binären Suchbäumen...................... 278 6.3.3 Laufzeitkomplexität der binären Suche...................... 279 9

6.4 Hashing-basierte Suche........................................ 282 6.4.1 Grundprinzip des Hashing............................... 282 6.4.2 Hash-Funktionen und Kollisionen......................... 284 6.4.3 Kollisionsbehandlung durch Verkettung.................... 287 6.4.4 Kollisionsbehandlung durch offene Adressierung............ 289 Zusammenfassung............................................ 294 Aufgaben.................................................... 295 Kapitel 7 Sortieralgorithmen 297 7.1 Anwendungsgebiete und Anforderungen.......................... 300 7.2 Auswahlsortieren............................................. 305 7.3 Einfügesortieren.............................................. 306 7.4 Shell-Sortieren............................................... 309 7.5 Austauschsortieren (Bubblesort) und Combsort..................... 315 7.6 Quicksort.................................................... 321 7.7 Heap-Datenstruktur und Heap-Sortieren........................... 328 7.7.1 Heap-Datenstruktur..................................... 328 7.7.2 Heap-Sortieren........................................ 334 7.8 Weitere Sortierverfahren....................................... 337 7.9 Problemkomplexität........................................... 340 Zusammenfassung............................................ 342 Aufgaben.................................................... 344 Kapitel 8 Algorithmen zur Erzeugung von Zufallszahlen 345 8.1 Anwendungsgebiete, Begriffe und Anforderungen................... 348 8.2 Algorithmen mit Gedächtnis.................................... 350 8.3 Methoden zur Erzeugung von Zufallszahlenfolgen................... 352 8.4 Methoden zur Periodenverlängerung.............................. 355 8.5 Abgeleitete Generatoren........................................ 357 8.6 Tests zur Prüfung der Güte von Zufallszahlenfolgen................. 362 Zusammenfassung............................................ 365 Aufgaben.................................................... 366 Kapitel 9 Exhaustionsalgorithmen 369 9.1 Acht- bzw. n-damen-problem................................... 372 9.2 Allgemeine Problemformulierung und grundlegender Lösungsansatz... 378 9.3 Varianten von Backtracking-Aufgaben und -Lösungen................ 383 9.4 Standardproblemstellungen und heuristische Algorithmen........... 389 Zusammenfassung............................................ 396 Aufgaben.................................................... 397 10

Kapitel 10 Algorithmen auf Zeichenketten 399 10.1 Repräsentation von und elementare Operationen auf Zeichenketten..... 401 10.2 Problem der Mustersuche in Zeichenketten (Pattern Matching)......... 406 10.3 Elementare Mustersuch-Verfahren................................ 407 10.4 Mustersuch-Verfahren nach Knuth, Morris und Pratt................. 411 10.5 Mustersuch-Verfahren nach Boyer und Moore....................... 416 10.6 Mustersuch-Verfahren nach Rabin und Karp........................ 421 10.7 Ausblick: Echte Muster, reguläre Ausdrücke und endliche Automaten... 425 Zusammenfassung............................................. 427 Aufgaben..................................................... 428 Teil III Elementare Programmierparadigmen 431 Kapitel 11 Aufgaben- und modulorientierte Programmierung 433 11.1 Entwurf und Eigenschaften aufgabenorientierter Systemarchitekturen... 435 11.2 Beispiel zur Vorgehensweise bei aufgabenorientierter Systementwicklung............................................ 439 11.3 Modulkonstrukt Begriff und Eigenschaften........................ 447 11.4 Anwendung des Modulkonstrukts................................ 451 Zusammenfassung............................................. 460 Aufgaben..................................................... 461 Kapitel 12 Daten- und transformationsorientierte Programmierung 463 12.1 Lösungsansatz für und Aufbau von datenorientierten Systemarchitekturen........................................... 466 12.2 Grammatiken zur Beschreibung der syntaktischen Struktur von Datenströmen............................................. 468 12.3 Konstruktion der Analysatorkomponenten.......................... 474 12.4 Attributierte Grammatiken zur Beschreibung von Transformationsprozessen....................................... 486 12.5 Algorithmische Interpretation attributierter Grammatiken............. 490 12.6 Einsatz von Compiler-Generatoren................................ 495 12.7 Vorgehensweise zur systematischen Entwicklung datenorientierter Programmsysteme............................................. 498 Zusammenfassung............................................. 500 Aufgaben..................................................... 501 Kapitel 13 Objektorientierte Programmierung 503 13.1 Ziel der objektorientierten Programmierung......................... 506 13.2 Objekte und Klassen........................................... 507 13.3 Vererbung.................................................... 513 13.4 Polymorphismus, Klassengarantie und -test......................... 516 11

13.5 Statische und dynamische Bindung.............................. 519 13.6 Abstrakte Klassen, abstrakte Methoden und Klassenbibliotheken....... 521 13.7 Systematischer Entwurf objektorientierter Systemarchitekturen........ 529 Zusammenfassung............................................ 532 Aufgaben.................................................... 533 Literaturverzeichnis 537 Namensregister 547 Register 549 12