
Algorithmen und Datenstrukturen
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Persons
Content
- Intro
- I Grundlegende Konzepte
- Vorbemerkungen und Überblick
- Informatik, Algorithmen und Datenstrukturen
- Historischer Überblick: Algorithmen
- Historie von Programmiersprachen und Java
- Grundkonzepte der Programmierung in Java
- Algorithmische Grundkonzepte
- Intuitiver Algorithmusbegriff
- Beispiele für Algorithmen
- Bausteine für Algorithmen
- Pseudocode-Notation für Algorithmen
- Struktogramme
- Rekursion
- Sprachen und Grammatiken
- Begriffsbildung
- Reguläre Ausdrücke
- Backus-Naur-Form (BNF)
- Elementare Datentypen
- Datentypen als Algebren
- Signaturen von Datentypen
- Der Datentyp bool
- Der Datentyp integer
- Felder und Zeichenketten
- Terme
- Bildung von Termen
- Algorithmus zur Termauswertung
- Datentypen in Java
- Primitive Datentypen
- Referenzdatentypen
- Operatoren
- Algorithmenparadigmen
- Überblick über Algorithmenparadigmen
- Applikative Algorithmen
- Terme mit Unbestimmten
- Funktionsdefinitionen
- Auswertung von Funktionen
- Erweiterung der Funktionsdefinition
- Applikative Algorithmen
- Beispiele für applikative Algorithmen
- Imperative Algorithmen
- Grundlagen imperativer Algorithmen
- Komplexe Anweisungen
- Beispiele für imperative Algorithmen
- Das logische Paradigma
- Logik der Fakten und Regeln
- Deduktive Algorithmen
- Weitere Paradigmen
- Genetische Algorithmen
- Neuronale Netze
- Umsetzung in Java
- Ausdrücke und Anweisungen
- Methoden
- Applikative Algorithmen und Rekursion
- Literaturhinweise zum Teil I
- II Algorithmen
- Ausgewählte Algorithmen
- Suchen in sortierten Folgen
- Sequenzielle Suche
- Binäre Suche
- Sortieren
- Sortieren: Grundbegriffe
- Sortieren durch Einfügen
- Sortieren durch Selektion
- Sortieren durch Vertauschen: BubbleSort
- Sortieren durch Mischen: MergeSort
- QuickSort
- Sortieren durch Verteilen: RadixSort
- Sortierverfahren im Vergleich
- Formale Algorithmenmodelle
- Registermaschinen
- Abstrakte Maschinen
- Markov-Algorithmen
- Church'sche These
- Interpreter für formale Algorithmenmodelle in Java
- Java: Markov-Interpreter
- Registermaschine in Java
- Eigenschaften von Algorithmen
- Berechenbarkeit und Entscheidbarkeit
- Existenz nichtberechenbarer Funktionen
- Konkrete nichtberechenbare Funktionen
- Das Halteproblem
- Nichtentscheidbare Probleme
- Post'sches Korrespondenzproblem
- Korrektheit von Algorithmen
- Relative Korrektheit
- Korrektheit von imperativen Algorithmen
- Korrektheitsbeweise für Anweisungstypen
- Korrektheit imperativer Algorithmen an Beispielen
- Korrektheit applikativer Algorithmen
- Komplexität
- Motivierendes Beispiel
- Asymptotische Analyse
- Komplexitätsklassen
- Analyse von Algorithmen
- Entwurf von Algorithmen
- Entwurfsprinzipien
- Schrittweise Verfeinerung
- Einsatz von Algorithmenmustern
- Problemreduzierung durch Rekursion
- Algorithmenmuster: Greedy
- Greedy-Algorithmen am Beispiel
- Greedy: Optimales Kommunikationsnetz
- Verfeinerung der Suche nach billigster Kante
- Rekursion: Divide-and-conquer
- Das Prinzip "Teile und herrsche"
- Beispiel: Spielpläne für Turniere
- Rekursion: Backtracking
- Prinzip des Backtracking
- Beispiel: Das Acht-Damen-Problem
- Beispiel: Tic Tac Toe mit Backtracking
- Dynamische Programmierung
- Das Rucksackproblem
- Rekursive Lösung des Rucksackproblems
- Prinzip der dynamischen Programmierung
- Parallele und verteilte Berechnungen
- Grundlagen
- Modell der Petri-Netze
- Definition von Petri-Netzen
- Formalisierung von Petri-Netzen
- Das Beispiel der fünf Philosophen
- Programmieren nebenläufiger Abläufe
- Koordinierte Prozesse
- Programmieren mit Semaphoren
- Philosophenproblem mit Semaphoren
- Verklemmungsfreie Philosophen
- Nebenläufige Berechnungen in Java
- Threads und wechselseitiger Ausschluss
- Parallelisierung in Java
- Das Philosophenproblem in Java
- Literaturhinweise zum Teil II
- III Datenstrukturen
- Abstrakte Datentypen
- Signaturen und Algebren
- Algebraische Spezifikation
- Spezifikationen und Modelle
- Termalgebra und Quotiententermalgebra
- Probleme mit initialer Semantik
- Beispiele für abstrakte Datentypen
- Der Kellerspeicher (Stack)
- Beispiel für Kellernutzung
- Die Warteschlange (Queue)
- Entwurf von Datentypen
- Klassen, Schnittstellen und Objekte in Java
- Grundzüge der Objektorientierung
- Klassen und Objekte in Java
- Vererbung
- Abstrakte Klassen und Schnittstellen
- Ausnahmen
- Umsetzung abstrakter Datentypen
- Lambda-Ausdrücke
- Grundlegende Datenstrukturen
- Stack und Queue als Datentypen
- Implementierung des Stacks
- Implementierung der Queue
- Bewertung der Implementierungen
- Verkettete Listen
- Doppelt verkettete Listen
- Skip-Listen
- Das Iterator-Konzept
- Java Collection Framework
- Generics in Java
- Bäume
- Bäume: Begriffe und Konzepte
- Binärer Baum: Datentyp und Basisalgorithmen
- Der Datentyp "Binärer Baum"
- Algorithmen zur Traversierung
- Suchbäume
- Suchen in Suchbäumen
- Einfügen und Löschen
- Komplexität der Operationen
- Ausgeglichene Bäume
- Rot-Schwarz-Bäume
- AVL-Bäume
- B-Bäume
- Digitale Bäume
- Tries
- Patricia-Bäume
- Praktische Nutzung von Bäumen
- Sortieren mit Bäumen: HeapSort
- Sets mit binären Suchbäumen
- Hashverfahren
- Grundprinzip des Hashens
- Grundlagen und Verfahren
- Hashfunktionen
- Behandlung von Kollisionen
- Aufwand beim Hashen
- Hashen in Java
- Cuckoo-Hashing
- Dynamische Hashverfahren
- Grundideen für dynamische Hashverfahren
- Erweiterbares Hashen
- Umsetzung des erweiterbaren Hashens
- Graphen
- Arten von Graphen
- Ungerichtete Graphen
- Gerichtete Graphen
- Gewichtete Graphen
- Weitere Eigenschaften von Graphen
- Realisierung von Graphen
- Knoten- und Kantenlisten
- Adjazenzmatrix
- Graphen als dynamische Datenstrukturen
- Transformationen zwischen Darstellungen
- Vergleich der Komplexität
- Eine Java-Klasse für Graphen
- Ausgewählte Graphenalgorithmen
- Breitendurchlauf
- Tiefendurchlauf
- Zyklenfreiheit und topologisches Sortieren
- Algorithmen auf gewichteten Graphen
- Kürzeste Wege
- Dijkstras Algorithmus
- A*-Algorithmus
- Kürzeste Wege mit negativen Kantengewichten
- Maximaler Durchfluss
- Der Ford-Fulkerson-Algorithmus
- Zentralitätsanalyse in Graphen
- Weitere Fragestellungen für Graphen
- Algorithmen auf Texten
- Probleme der Worterkennung
- Knuth-Morris-Pratt
- Boyer-Moore
- Pattern Matching
- Reguläre Ausdrücke
- Endliche Automaten
- Java-Klassen für reguläre Ausdrücke
- Ähnlichkeit von Zeichenketten
- Levenshtein-Distanz
- n-Gramme
- Anwendungen der Ähnlichkeitsvergleiche
- Literaturhinweise zum Teil III
- Quelltext der Klasse IOUtils
- Abbildungsverzeichnis
- Tabellenverzeichnis
- Algorithmenverzeichnis
- Beispielverzeichnis
- Programmverzeichnis
- Literaturverzeichnis
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.