Introduction [GT 1 and Appendix A; CLRS 1-3, 6.1-6.3 and Append.A,B,C] | |
1 | Course requirements |
Complexity and asymptotics [GT 1.1; CLRS 3] | |
Models of computation | |
Examples of algorithm analysis | |
Review HW #1 | |
Searching, sorting, lower bounds [GT 5; CLRS 6, 8] | |
2 | Searching - sequential, binary, interpolation [GT 3.1] |
Insertion sorts - straight, binary | |
Lower bounds on sorting - inversions, decisions [GT 8.3; CLRS 8.1] | |
Review HW #2 | |
3 | Heapsort [GT 5.3-5.4; CLRS 6] |
Distribution sorts - bucket, lexicographic [GT 9.1; CLRS 8.3] | |
Review HW #3 | |
4 | .........first exam |
Divide-and-conquer [GT 8, 9, 11; CLRS 4, 7, 9] | |
Selection of median [GT 9.2; CLRS 9] | |
DC paradigm - Weighted median [GT 9.3], MaxMin | |
Integer multiplication [GT 11.2] | |
5 | DC Theorem [GT 11.1; CLRS 4.3] |
Time analysis of Mergesort, Heap Construction [GT 8.1; CLRS 7] | |
Strassen matrix multiplication [GT 11.3; CLRS 4.2] | |
Review HW #4 | |
Dynamic programming [GT 12; CLRS 15] | |
Product of matrices [GT 12.1; CLRS 15.2] | |
6 | Common subsequences [GT 12.5; CLRS 15.4] |
Optimal binary search trees [CLRS 15.5] | |
7 | Nim, Fibonacci numbers |
Review HW #5 | |
.........second exam | |
Graph algorithms [GT 13-15; CLRS 22-25] | |
8 | Minimum spanning trees - Prim, Kruskal, Boruvka [GT 15; CLRS 23] |
Breadth-first search - components [GT 13.3; CLRS 22.2] | |
Depth-first search [GT 13.2, 13.5; CLRS 22.3] | |
DAGS - Topological Sorting [GT 14.3; CLRS 24.1] | |
9 | Review HW #6 |
Transitive closure (Warshall), all-pairs shortest paths [GT 13.4.2, 14.5; CLRS 25.1-.2] | |
Dijkstra and Bellman-Ford shortest path algorithms [GT 14.2-14.3; CLRS 24.1-24.3] | |
Review HW #7 | |
Other topics | |
10 | Pseudo-polynomial algorithms - 0/1 knapsack dynamic pgm'ng [GT 12.6] |
String matching - KMP algorithm [GT 23.3; CLRS 32.1, 32.4] | |
Probabilistic algorithms [CLRS 5.3, 31.8] | |
Review HW #8 | |
11 | .........final exam (cumulative) |
You are responsible for having read GT 1-3, 5, 8-9, 11-15