| Introduction [CLR 1-3, 6.1-6.3 and Append.A,B,C; B 1, 3] | |
| 1 |
Course requirements, induction proofs [B 3.4]
Complexity and asymptotics [CLR 3; B 1.4; GT 1.2] Models of computation Examples of algorithm analysis |
| Searching, sorting, lower bounds [CLR 6, 8; B 4-5] | |
| 2 |
Searching - sequential, binary, interpolation [B 1.6]
Insertion sorts - straight, binary, Shellsort [B 4.2, 4.10] Lower bounds on sorting - inversions, travel, decision [CLR 8.1; B 4.7; GT 4.4] Heapsort [CLR 6; B 4.8] |
| 3 |
Distribution sorts - bucket, lexicographic [CLR 8.3; B 4.11; GT 4.5]
*Lower bounds on selection [B 5.1-5.3, 5.5] |
| 4 | .........first exam |
| Divide-and-conquer [CLR 4, 7, 9; B 3.6-3.7; GT 5.2] | |
|
Selection of median [CLR 9; B 5.4]
DC paradigm - MaxMin |
|
| 5 |
Integer multiplication [GT 5.2.2], DC Theorem [CLR 4.3; B 3.6-3.7; GT 5.2.1]
Time analysis of Mergesort, Quicksort [CLR 7; B 4.4-4.6; GT 4.1.1, 4.3] Strassen matrix multiplication [CLR 28.2; B 12.3.4; GT 5.2.3], the skyline problem |
| Dynamic programming [CLR 15; B 10; GT 5.3 ] | |
| 6 |
Product of matrices, common subsequences [CLR 15.2-15.4; B 10.3; GT 5.3.1, 9.4]
Optimal binary search trees [CLR 15.5; B 10.4] |
| 7 | Nim, *Fibonacci numbers |
| .........second exam | |
| Graph algorithms [CLR 22-25; B 7-9] | |
| 8 |
Minimum spanning trees - Prim, Kruskal, Boruvka, hybrid [CLR 23; B 8; GT 7.3.1-7.3.4]
Depth-first search - components, biconnectivity [CLR 22.3; B 7.6-7.7; GT 6.3.1-6.3.2] |
| 9 |
Transitive closure, all-pairs shortest paths [CLR 25.1-25.2; B 9; GT 7.2]
Single-source shortest path (Dijkstra) [CLR 24.2-24.3; B 4.3; GT 7.1.1] |
| Other topics | |
| 10 |
Pseudo-polynomial algorithms - 0/1 knapsack dynamic pgm'ng
*String matching - KMP algorithm [CLR 32.1, 32.4; B 11.3; GT 9.1.4] NP-complete problems [CLR 34; B 13] *Probabilistic algorithms [CLR 5.3, 31.8] |
| .........final exam (cumulative) | |
You are responsible for having read CLR 1-10, 15, 22-25.2, 28.2, 32.4
You are strongly urged to read Baase 1-4, 5.1-5.2, 6.2, 8.1-8.3