Inhalt: | Es werden die folgenden Themen behandelt:
Vorgehensweise bei der Entwicklung und Implementierung von Algorithmen Komplexität und Effizienz von Algorithmen, O-Notation Listen (Stack, Queue, doppelt verkettete Listen) Sortierverfahren (Selection-, Insertion-, Bubble-, Merge-, Quick-Sort) Bäume (Binär-, AVL-, 2-3-4-, Rot-Schwarz-, B-Bäume, Suchbäume, Traversierung, Heap) Graphen (Datenstrukturen,DFS, BFS, topologische Traversierung,Dijkstra-, A*-, Bellman-Ford-Algorithmen, minimale Spannbäume, maximaler Fluss) Graphenbasierte Matching-Algorithmen (z.B. Ungarischer Algorithmus) Textalgorithmen (String-Matching, Knuth-Morris-Pratt, Boyer-Moore, reguläre Ausdrücke, Levenshtein-Distanz) Hashing (Hashfunktionen, Kollisionen) Verteilte Algorithmen (Petri-Netze, Programmieren nebenläufiger Abläufe, einige parallele und parallelisierte Algorithmen) Algorithmenentwurf und -muster (inkrementell, greedy, divide-and-conquer, dynamische Programmierung, Backtracking, randomisierte Algorithmen) |