Algorithmen und Komplexität 2018
Vorlesung an der DHBW Stuttgart, 2018.
Inhalte
Algorithmen sind eindeutig beschriebene Vorgehensweisen zum
Lösen von bestimmten, wohldefinierten Problemen. Algorithmik
beschäftigt sich mit den Eigenschaften, der Analyse, und dem
Design von Algorithmen. Sie ist der Kern der Informatik.
In dieser Vorlesung beschäftigen wir uns mit dem Entwurf und der
Evaluierung von Algorithmen. Wir untersuchen, wie man Stärken
und Schwächen von bestimmten Algorithmen charakterisieren kann,
und lernen verschiedenen praktisch relevante Algorithmen und
Datenstukturen kennen.
Fragestellungen sind z.B.
- Wie kann ich in großen Datenmengen effizient suchen?
- Wie finde ich den Weg von A nach B?
- Warum ist Quicksort schneller als Sortieren durch Auswahl?
- Wie kann ich die Laufzeit eines Algorithmus quantifizieren?
Im begleitenden Labor werden viele der vorgestellten Algorithmen
und Datenstrukturen in C umgesetzt.
Unterlagen zur Vorlesung
Unterlagen zum Labor AI
- Foliensamlung (Stand 2018-05-24)
ändern)
- Musterlösungen und Material
- Standard-Rahmen für C-Programme
- Woche 1
(Zufallszahlen, Verdopplung, Listenumkehr mit bis zu
MAXITEMS Elementen) als .tgz und als
.zip
- Woche 2 (Datentyp
lineare Liste, Listenumkehr ohne hartes Limit)
(auch als .zip)
- Woche 3 (Diverse
Listenfunktionen, Duplikate entferenen, ...)
- Woche 4 (Sortieren,
Duplikate zählen)
- Woche 5: Navigieren im Labyrinth
- Woche 6: Navigieren mit Terrain
- Beispiel-Labyrinthe
- Lösungen:
- Woche 7&8: Sortierolympiade
- Testdateien
- Zufällige Reihenfolge
- Bereits sortiert
- Absteigend sortiert
-
Spezialfall: Nur
einsen (davon aber 100000)
- Woche 9: Binäre Suchbäume