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 |