E-Book, Deutsch, 608 Seiten
Saake / Sattler Algorithmen und Datenstrukturen
überarbeitete und erweiterte Auflage
ISBN: 978-3-96910-067-7
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Eine Einführung mit Java
E-Book, Deutsch, 608 Seiten
ISBN: 978-3-96910-067-7
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Algorithmen und Datenstrukturen von Grund auf verstehen
- Fundierte Einführung mit klarem didaktischen Aufbau
- Mit konkreten Anwendungsbeispielen
- Eine reichhaltige Fundgrube für Lehre und Selbststudium
Kenntnisse von Algorithmen und Datenstrukturen sind ein Grundbaustein des Studiums der Informatik und verwandter Fachrichtungen. Das Buch behandelt diese Thematik in Verbindung mit der Programmiersprache Java und schlägt so eine Brücke zwischen den klassischen Lehrbüchern zur Theorie von Algorithmen und Datenstrukturen und den praktischen Einführungen in eine konkrete Programmiersprache.
Die konkreten Algorithmen und deren Realisierung in Java werdenumfassend dargestellt. Daneben werden die theoretischen Grundlagen vermittelt, die in Programmiersprachen-Kursen oft zu kurz kommen: abstrakte Maschinenmodelle, Berechenbarkeit, Algorithmenparadigmen sowie parallele und verteilte Abläufe. Einen weiteren Schwerpunkt bilden Datenstrukturen wie Listen, Bäume, Graphen und Hashtabellen sowie deren objektorientierte
Implementierung mit modernen Methoden der Softwareentwicklung.
Die 6. Auflage führt einige neue Algorithmen ein und berücksichtigt die Neuerungen der aktuellen Java-Versionen, u.a. zu Themen wie Parallelisierung.
Gunter Saake ist Professor für Datenbanken und Informationssysteme an der Uni Magdeburg und forscht unter anderem auf den Gebieten Datenbankintegration, digitale Bibliotheken, objektorientierte Informationssysteme und Informationsfusion. Er ist Koautor mehrerer Lehrbücher, u.a. zu Datenbankkonzepten und -implementierungstechniken, Datenbanken & Java. Kai-Uwe Sattler ist Professor für Datenbanken und Informationssysteme an der TU Ilmenau. Zu seinen Arbeitsgebieten zählen Datenbankintegration und Anfrageverarbeitung in heterogenen sowie massiv verteilten Datenbanksystemen. Er ist Koautor mehrerer Lehrbücher, u.a. zu Datenbankkonzepten und zu Datenbanken & Java.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
Inhaltsverzeichnis
1.1Informatik, Algorithmen und Datenstrukturen
1.2Historischer Überblick: Algorithmen
1.3Historie von Programmiersprachen und Java
1.4Grundkonzepte der Programmierung in Java
2.1Intuitiver Algorithmusbegriff
2.1.1Beispiele für Algorithmen
2.1.2Bausteine für Algorithmen
2.1.3Pseudocode-Notation für Algorithmen
2.3.2Signaturen von Datentypen
2.4.2Algorithmus zur Termauswertung
3.1Überblick über Algorithmenparadigmen
3.2.3Auswertung von Funktionen
3.2.4Erweiterung der Funktionsdefinition
3.2.6Beispiele für applikative Algorithmen
3.3.1Grundlagen imperativer Algorithmen
3.3.3Beispiele für imperative Algorithmen
3.4.1Logik der Fakten und Regeln
3.6.1Ausdrücke und Anweisungen
3.6.3Applikative Algorithmen und Rekursion
5.1Suchen in sortierten Folgen
5.2.3Sortieren durch Selektion
5.2.4Sortieren durch Vertauschen: BubbleSort
5.2.5Sortieren durch Mischen: MergeSort
5.2.7Sortieren durch Verteilen: RadixSort
5.2.8Sortierverfahren im Vergleich
6.5Interpreter für formale Algorithmenmodelle in Java
7Eigenschaften von Algorithmen
7.1Berechenbarkeit und Entscheidbarkeit
7.1.1Existenz nichtberechenbarer Funktionen
7.1.2Konkrete nichtberechenbare Funktionen
7.1.4Nichtentscheidbare Probleme
7.1.5Post’sches Korrespondenzproblem
7.2Korrektheit von Algorithmen
7.2.2Korrektheit von imperativen Algorithmen
7.2.3Korrektheitsbeweise für Anweisungstypen
7.2.4Korrektheit imperativer Algorithmen an Beispielen
7.2.5Korrektheit applikativer Algorithmen
8.1.1Schrittweise Verfeinerung
8.1.2Einsatz von Algorithmenmustern
8.1.3Problemreduzierung durch Rekursion
8.2.1Greedy-Algorithmen am Beispiel
8.2.2Greedy: Optimales Kommunikationsnetz
8.2.3Verfeinerung der Suche nach billigster Kante
8.3Rekursion: Divide-and-conquer
8.3.1Das Prinzip »Teile und herrsche«
8.3.2Beispiel: Spielpläne für Turniere
8.4.2Beispiel: Das Acht-Damen-Problem
8.4.3Beispiel: Tic Tac Toe mit Backtracking
8.5.2Rekursive Lösung des Rucksackproblems
8.5.3Prinzip der dynamischen Programmierung
9Parallele und verteilte Berechnungen
9.2.1Definition von Petri-Netzen
9.2.2Formalisierung von Petri-Netzen
9.2.3Das Beispiel der fünf Philosophen
9.3Programmieren nebenläufiger Abläufe
9.3.2Programmieren mit Semaphoren
9.3.3Philosophenproblem mit Semaphoren
9.3.4Verklemmungsfreie Philosophen
9.4Nebenläufige Berechnungen in Java
9.4.1Threads und wechselseitiger Ausschluss
9.4.3Das Philosophenproblem in Java
10Literaturhinweise zum Teil II
11.2Algebraische Spezifikation
11.2.1Spezifikationen und Modelle
11.2.2Termalgebra und Quotiententermalgebra




