Nächste Seite:
Inhalt
Aufwärts:
Homepage Anyware
Inhalt
Informatik II
Algorithmen und Datenstrukturen
Klaus Wachtler
29. März 2006
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
Über dieses Dokument ...
www.wachtler.de