Lecture Notes from Michael Mitzenmacher's
Algorithms course at Harvard, Spring 2002
Notes 1, 2/10: PS -- Algorithm Overview, Fibonocci
Notes 2, 2/12: PS -- Induction, Recurrences, Mergesort
Notes 3, 2/17: PS -- Graphs, DFS, Top. Sort, SCCs
Notes 4, 2/19: PS -- BFS, Shortest paths
Notes 5, 2/24: PS -- MSTs, Prim's, Kruskal's
Notes 6, 3/2: PS -- Disjoint set data structure
Notes 7, 3/4: PS -- Greedy Algorithms
Notes 8, 3/9: PS -- Divide and Conquer
Notes 9, 3/11: PS -- Dynamic Programming
Notes 10, 3/16: PS -- Hashing 1
Notes 11, 3/18: PS -- Hashing 2
Notes 12, 3/23: PS -- Document Similarity
Notes 13, 4/6: PS -- Primality Testing
Notes 14, 4/6: PS -- Cryptography
Notes 15, 4/8: PS -- 2-SAT
Notes 16, 4/8: PS -- Linear Programming
Notes 17, 4/15: PS -- Network Flows and Games
Notes 18, 4/20: PS -- NP Completeness
Notes 19, 4/22: PS -- Local Search
Notes 20, 4/27: PS -- Approximation Algorithms
Notes 21, 4/29: PS -- LCA, RMQ
Notes 22, 5/4: PS -- Suffix Trees