| Topics |
Description |
Readings |
| Foundations |
function growth: O, theta, omega notation |
Cormen 3 |
| recurrence relations |
Cormen 4 |
| probabilistic analysis; randomized algorithms |
Cormen 5 |
| amortized analysis |
Cormen 17 |
| dynamic programming |
Cormen 15 |
| greedy algorithms |
Cormen 16.1-3 |
| Sorting |
heapsort, quicksort, mergesort |
Cormen 6, 7, 2 |
| non-comparison-based |
Cormen 8 |
| selection / order statistics |
Cormen 9 |
| Data Structures |
balanced binary search trees |
Cormen 12, 13 |
| hash tables |
Cormen 11 |
| heaps / priority queues |
Cormen 6.5, 19 |
| Graph Algorithms |
breadth/depth-first search |
Cormen 22 |
| minimum spanning trees |
Cormen 23 |
| shortest paths |
Cormen 24, 25 |
| maximum flow |
Cormen 26.1-3 |
| Complexity |
NP-completeness |
Cormen 34 |