Nächste Seite:
1. Einleitung
Aufwärts:
Informatik II Algorithmen und
Vorherige Seite:
Informatik II Algorithmen und
Inhalt
1. Einleitung
2. Allgemeines
2.1 Herkunft des Begriffs Algorithmus
2.2 Anforderungen an einen Algorithmus
2.3 Wie formuliert man einen Algorithmus?
2.4 Rekursion
2.5 Effizienz von Algorithmen
2.5.1 Laufzeiteffizienz
2.5.2 Speichereffizienz
3. Container und zugehörige Algorithmen
3.1 Allgemeines
3.1.1 Referenzsemantik, Wertsemantik
3.2 Feld
3.3 Liste
3.4 Map, Set
3.5 Hashing
3.6 Bäume
3.6.1 Ausgeglichene Bäume
3.6.1.1 Top-Down 2-3-4-Bäume
3.6.1.2 Red-Black-Trees
3.6.1.3 AVL-Bäume
3.6.1.4 B-Bäume, Bayerbäume
3.7 Iteration über Containerelemente
4. Mustersuche in Feldern
4.1 Mustersuche brute force
4.2 Verfahren von Knuth, Morris und Pratt
4.3 Verfahren von Boyer und Moore
4.4 Weiterführende Verweise
5. Algorithmen zur Optimierung
5.1 Geschlossene Lösung
5.2 Raten der Lösung
5.3 Genetische Algorithmen, Evolutionsstrategie
5.4 Beispiele für Optimierung
5.4.1 Materialverbrauch von Blechdosen
5.4.1.1 Geschlossene Lösung
5.4.2 Lösung mithilfe eines genetischen Algorithmus
5.4.3 Travelling Salesman Problem
6. Umsetzung von Algorithmen
6.1 Nutzen von Sprachmitteln
6.1.1 Fortran-Version
6.1.2 Pascal-Version
6.1.3 C-Version
6.1.4 C++-Version
6.1.5 Java-Version
A. Übungen
A.1 Aufgaben
A.1.1 Größter gemeinsamer Teiler
A.1.2 Fakultät
A.1.3 Summenbildung
A.1.4 Binäre Suche
A.1.5 Einfach verkettete Liste
A.1.6 Einfach verkettete Liste eines beliebigen Typs
A.1.7 Geschlossenes Hashing
A.1.8 Offenes Hashing
A.1.9 Einfache Integration
A.1.10 Maximum einer Funktion
A.1.11 Einen String in einem anderen suchen
A.2 Lösungen
A.2.1 Größter gemeinsamer Teiler
A.2.1.1 Java-Version
A.2.1.2 C++-Version
A.2.1.3 Kommentar zu den Ergebnissen
A.2.2 Fakultät
A.2.2.1 Javaversion
A.2.2.2 C-Version
A.2.3 Summenbildung
A.2.4 Binäre Suche
A.2.4.1 Java-Version
A.2.4.2 C/C++-Version
A.2.4.3 C/C++-Version (verallgemeinert)
A.2.5 Einfach verkettete Liste
A.2.5.1 Java-Version
A.2.5.2 C++-Version
A.2.6 Einfach verkettete Liste eines beliebigen Typs
A.2.6.1 Java-Version
A.2.6.2 C++-Version
A.2.7 Geschlossenes Hashing
A.2.7.1 Java-Version
A.2.7.2 C++-Version
A.2.8 Offenes Hashing
A.2.8.1 Java-Version
A.2.8.2 C++-Version
A.2.9 Einfache Integration
A.2.9.1 Java: Verwendung einer abstrakten Basisklasse
A.2.9.2 Java: Verwendung eines funktionalen Objekts
A.2.9.3 C++: Funktionszeiger
A.2.10 Maximum einer Funktion
A.2.10.1 Java-Version
A.2.10.2 C++-Version
A.2.11 Einen String in einem anderen suchen
A.2.11.1 Java-Version
A.2.11.2 C++-Version
B. Spezielle Algorithmen
B.1 Gaußscher Algorithmus zur Bestimmung des Ostersonntags
Literatur
www.wachtler.de