Inhaltsverzeichnis. Teil 1 Grundlagen 23

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

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

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

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Inhaltsverzeichnis. I Grundlegende Konzepte 1. xiii

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Algorithmen und Datenstrukturen

11. Elementare Datenstrukturen

Übungsklausur Algorithmen I

Programmiertechnik II

Algorithmen - Eine Einführung

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Informatik II, SS 2014

In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:

Algorithmen und Datenstrukturen

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Schulinterner Lehrplan für das Fach Informatik der Sekundarstufe II an der Bettine von Arnim Gesamtschule

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Programmiertechnik II

7. Sortieren Lernziele. 7. Sortieren

Übung: Algorithmen und Datenstrukturen SS 2007

Sortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004

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

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

Ulrich Kaiser Christoph Kecher C/C++ Von den Grundlagen zur professionellen Programmierung. в.. Galileo Computing

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Datenstrukturen & Algorithmen

Schulinternes Curriculum im Fach Informatik

Priority Queues and Heapsort

14. Rot-Schwarz-Bäume

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

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

Vorlesung Datenstrukturen

Grundlagen der Programmierung

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4

Algorithmen & Datenstrukturen 1. Klausur

12. Dynamische Datenstrukturen

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

6. Verkettete Strukturen: Listen

13. Bäume: effektives Suchen und Sortieren

JAVA - Suchen - Sortieren

Datenstrukturen und Algorithmen

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

Kapiteltests zum Leitprogramm Binäre Suchbäume

Tutorium Algorithmen & Datenstrukturen

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Algorithmen und Datenstrukturen

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

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

Suchen und Sortieren (Die klassischen Algorithmen)

DIGITALE BÄUME TRIES. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

Informatik II Vorlesung am D-BAUG der ETH Zürich

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)

Beispiel zu Datenstrukturen

Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Inhaltsverzeichnis. Danksagungen... 11

Name: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Bäume, Suchbäume und Hash-Tabellen

Grundkurs Algorithmen und Datenstrukturen in JAVA

Datenstrukturen & Algorithmen

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Datenstrukturen. Mariano Zelke. Sommersemester 2012

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Algorithmen und Datenstrukturen 1

Grundlagen der Programmierung 2. Sortierverfahren

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Studientag zum Kurs 01613

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

Datenstrukturen & Algorithmen

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Programmiertechnik II

Datenstrukturen & Algorithmen

Klausur Algorithmen und Datenstrukturen

Programmieren I. Kapitel 7. Sortieren und Suchen

Grundkurs Software- Entwicklung mit C++

Algorithmen und Datenstrukturen

Freiherr-vom-Stein-Gymnasium Leverkusen Fachschaft Informatik Unterrichtsinhalte Informatik Qualifikationsphasen Q1 und Q2

Einführung in die Informatik 1

Algorithmen und Datenstrukturen

Heap-Sort und andere Sortieralgorithmen

Verkettete Datenstrukturen: Bäume

Datenstrukturen und Algorithmen

Datenstrukturen. Mariano Zelke. Sommersemester 2012

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

Algorithmen und Datenstrukturen

System Modell Programm

Datenstrukturen. einfach verkettete Liste

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008

Suchen und Sortieren

C für Java-Programmierer

Erinnerung VL

Übung Datenstrukturen. Sortieren

Transkript:

Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1 Grundlagen 23 Kapitel 1 Einführung 25 1.1 Algorithmen 26 1.2 Ein Beispielproblem: Vernetzung 28 1.3 Algorithmen zur Vereinigungs-Suche (Unionfind) 31 1.4 Ausblick 43 1.5 Themenüberblick 45 Kapitel 2 Prinzipien der Algorithmenanalyse 49 2.1 Implementierung und empirische Analyse 50 2.2 Analyse von Algorithmen 54 2.3 Wachstum von Funktionen 56 2.4 O-Notation 63 2.5 Grundlegende Rekurrenzen 67 2.6 Beispiele der Algorithmenanalyse 71 2.7 Garantien, Vorhersagen und Beschränkungen 77 Referenzen für Teil 1 81

6 Inhaltsverzeichnis Teil 2 Datenstrukturierung 83 Kapitel 3 Elementare Datenstrukturen 85 3.1 Bausteine 86 3.2 Arrays (Felder) 96 3.3 Verkettete Listen 103 3.4 Elementare Listenverarbeitung 110 3.5 Speicherzuordnung für Listen 119 3.6 Strings 123 3.7 Zusammengesetzte Datenstrukturen 128 Kapitel 4 Abstrakte Datentypen 139 4.1 Abstrakte Objekte und Sammlungen von Objekten 148 4.2 Abstrakter Datentyp für einen Pushdown-Stack 151 4.3 Beispiele von Clients für den Stack-ADT 154 4.4 Implementierungen von Stack-ADTs 160 4.5 Einen neuen abstrakten Datentyp erstellen 165 4.6 FIFO-Warteschlangen und verallgemeinerte Warteschlangen 172 4.7 Doppelte und indizierte Elemente 180 4.8 First-Class-ADTs 185 4.9 Anwendungsbasiertes ADT-Beispiel 197 4.10 Ausblick 202 Kapitel 5 Rekursion und Bäume 205 5.1 Rekursive Algorithmen 206 5.2 Teile und herrsche 213 5.3 Dynamisches Programmieren 226 5.4 Bäume 235 5.5 Mathematische Eigenschaften von Binärbäumen 244 5.6 Traversieren von Bäumen 247 5.7 Rekursive Algorithmen für Binärbäume 253 5.8 Traversieren von Graphen 259 5.9 Ausblick 264 Referenzen für Teil 2 267

Inhaltsverzeichnis 7 Teil 3 Sortieren 269 Kapitel 6 Elementare Sortierverfahren 271 6.1 Spielregeln 272 6.2 Sortieren durch Auswählen 278 6.3 Sortieren durch Einfügen 279 6.4 Bubblesort 282 6.5 Leistungsdaten elementarer Sortierverfahren 284 6.6 Shellsort 290 6.7 Andere Arten von Daten sortieren 299 6.8 Index- und Zeigersortieren 304 6.9 Sortieren verketteter Listen 311 6.10 Schlüsselindiziertes Zählen 315 Kapitel 7 Quicksort 319 7.1 Der Grundalgorithmus 320 7.2 Leistungsmerkmale von Quicksort 325 7.3 Stack-Größe 328 7.4 Kleine Teildateien 332 7.5 Zerlegen nach dem Median von drei Elementen 335 7.6 Doppelte Schlüssel 339 7.7 Strings und Vektoren 342 7.8 Auswählen 344 Kapitel 8 Mischen und Sortieren durch Mischen 349 8.1 Zweiwegmischen 350 8.2 Abstraktes In-situ-Mischen 352 8.3 Top-Down-Mergesort 354 8.4 Verbesserungen des grundlegenden Algorithmus 358 8.5 Bottom-Up-Mergesort 360 8.6 Leistungsmerkmale des Sortierens durch Mischen 364 8.7 Mergesort mit verketteten Listen implementieren 367 8.8 Rekursion unter einem anderen Blickwinkel 370 Kapitel 9 Prioritätswarteschlangen und Heapsort 373 9.1 Elementare Implementierungen 376 9.2 Die Datenstruktur Heap 380 9.3 Algorithmen für Heaps 383 9.4 Heapsort 390 9.5 Abstrakter Datentyp für Prioritätswarteschlangen 397 9.6 Prioritätswarteschlangen für Indexelemente 403 9.7 Binomialwarteschlangen 407

8 Inhaltsverzeichnis Kapitel 10 Radixsort 419 10.1 Bits, Bytes und Worte 421 10.2 Binärer Quicksort 424 10.3 MSD-Radixsort 429 10.4 Dreiweg-Radix-Quicksort 436 10.5 LSD-Radixsort 441 10.6 Leistungsdaten von Radixsort-Verfahren 445 10.7 Sortierverfahren mit sublinearer Zeit 448 Kapitel 11 Spezielle Sortierverfahren 453 11.1 Mergesort nach Batcher 454 11.2 Sortiernetzwerke 460 11.3 Externes Sortieren 469 11.4 Implementierungen des Verfahrens Sortieren durch Mischen 474 11.5 Paralleles Sortieren durch Mischen 481 Referenzen für Teil 3 487 Teil 4 Suchen 489 Kapitel 12 Symboltabellen und binäre Suchbäume 491 12.1 Abstrakter Datentyp für Symboltabellen 493 12.2 Schlüsselindizierte Suche 499 12.3 Sequenzielle Suche 503 12.4 Binäre Suche 510 12.5 Binäre Suchbäume 515 12.6 Leistungsmerkmale von binären Suchbäumen 522 12.7 Indeximplementierungen mit Symboltabellen 526 12.8 Einfügen an der Wurzel in binären Suchbäumen 530 12.9 BST-Implementierungen von anderen ADT-Funktionen 535 Kapitel 13 Ausgeglichene Bäume 545 13.1 Randomisierte binäre Suchbäume 548 13.2 Splay-BSTs 555 13.3 Top-Down-2-3-4-Bäume 562 13.4 Rot-Schwarz-Bäume 568 13.5 Skiplisten 578 13.6 Leistungsmerkmale 587 Kapitel 14 Hashing 591 14.1 Hash-Funktionen 592 14.2 Direkte Verkettung 601 14.3 Lineares Sondieren 606

Inhaltsverzeichnis 9 14.4 Doppeltes Hashing 611 14.5 Dynamische Hash-Tabellen 617 14.6 Ausblick 621 Kapitel 15 Digitales Suchen 627 15.1 Digitale Suchbäume 628 15.2 Tries 632 15.3 Patricia-Tries 642 15.4 Mehrweg-Tries und ternäre Such-Tries 650 15.5 Algorithmen zur Textindizierung 668 Kapitel 16 Externes Suchen 673 16.1 Spielregeln 674 16.2 Indexsequenzieller Zugriff 677 16.3 B-Bäume 680 16.4 Erweiterbares Hashing 693 16.5 Ausblick 704 Referenzen für Teil 4 707 Register 709