Algorithmen und Datenstrukturen (Wintersemester 2007/2008)

Dozent: Prof. Dr. Matthias O. Franz
Vorlesung: Dienstags, 8:00-9:30, Hörsaal F023
Übungen: Donnerstags, 9:45-11:15 bzw. 11:30-13:00, Hörsaal G149
Offizielle Vorlesungsseite: Modulseiten Fakultät für Informatik

Die Vorlesung führt in eines der Kerngebiete der Informatik ein: klassische Algorithmen und Datenstrukturen. Im ersten Block werden Suchverfahren behandelt (elementare Suchverfahren, Hashing, Suchbäume, Heaps), im zweiten Graphenalgorithmen (topologisches Sortieren, kürzeste Wege, minimale aufspannende Bäume, Netzwerkflüsse, Zusammenhangskomponenten). Im dritten, kleineren Teil werden Textsuche und, wenn genug Zeit verbleibt, geometrische Algorithmen besprochen. Das Gelernte wird in den Übungen auf konkrete Problemstellungen in C++-Anwendungen umgesetzt.

Ziele:

Voraussetzung:

Erfolgreiche Teilnahme bei Programmiertechnik 2 bei Prof. Dr. Bittel. In den Übungen wird auf einige der dort erarbeiteten Codebausteine zurückgegriffen. Die Vorlesung baut auf die in Programmiertechnik 2 behandelten Themen Komplexitätsanalyse, Sortieralgorithmen und Bäume auf.

Vorlesungsplan

  • B-Bäume
  • Datum, Titel Themen Material
    02.10.2007
    Einleitung




    • Übersicht
    • Suchverfahren: Einleitung und Problemstellung
    • Elementare Suchverfahren: lineare und binäre Suche
    09.10.2007
    Hashverfahren I
    • Hashfunktion
    • Hashverfahren mit Verkettung
    16.10.2007
    Hashverfahren II

    18.10. Abgabe Blatt 1, Aufg. 1, 2, 3 und 6a, b
    • Offene Hashverfahren
    • Dynamische Hashverfahren
    23.10.2007
    Binäre Suchbäume
    • Bäume: Begriffe, Eigenschaften und Traversierung
    • Binäre Suchbäume
    • Gefädelte Suchbäume
    30.10.2007
    Ausgeglichene Bäume I
    • AVL-Bäume
    06.11.2007
    Ausgeglichene Bäume II

    08.11. Abgabe Blatt 1, Aufg. 4 und 6c
    • Treaps
    • Splay-Bäume
    13.11.2007
    B-Bäume
    • B-Bäume
    • 2-3-4-Bäume
    • Schwarz-Rot-Bäume
    • Binäre Bäume
    20.11.2007
    Einführung Graphen

    22.11. Abgabe Blatt 1, Aufg. 5 und 6d
    • Einführung und Definitionen
    • Datenstrukturen
    • Elementare Algorithmen
    27.11.2007
    Kürzeste Wege in Graphen I
    • Topologisches Sortieren
    • Kürzeste Wege in ungerichteten Graphen
    • Kürzeste Wege in Distanzgraphen
    04.12.2007
    Kürzeste Wege in Graphen II

    06.12. Abgabe Blatt 2, Aufg. 1
    • Gewichtete Digraphen
    • Netzpläne
    • Alle kürzesten Wege in gewichteten Digraphen
    11.12.2007
    Minimal aufspannende Bäume
    • Algorithmus von Prim
    • Algorithmus von Kruskal
    • Vereinigung und Suchen von disjunkten Mengen
    18.12.2007
    Flüsse in Netzwerken

    20.12. Abgabe Blatt 2, Aufg. 2
    • Flüsse in Netzwerken
    • Zusammenhangskomponenten
    08.01.2008
    Vorrangswarteschlangen

    10.12. Abgabe Blatt 2, Aufg. 3
    • Elementare Implementierungen
    • Binäre Heaps
    • Index-Heaps
    • Binomial Queues
    15.01.2008
    Textsuche
    • Naiver Algorithmus
    • Knuth-Morris-Pratt-Algorithmus
    • Karp-Rabin-Algorithmus
    22.01.2007
    Wiederholung und Vorrechnen von Klausuraufgaben

    24.01. Abgabe Blatt 3