| L1 |
Introduction: Analysis of Algorithms, Insertion Sort, Merge Sort (PDF) |
| R1 |
Correctness of Algorithms |
| L2 |
Asymptotic Notation, Recurrences: Substitution, Iteration, Master Method (PDF) |
| L3 |
Divide and Conquer: Strassen's Algorithm, Fibonacci Numbers, VLSI Layout (PDF) |
| R2 |
Recurrences, Sloppiness |
| L4 |
Quicksort, Randomized Algorithms (PDF) |
| L5 |
Median, Order Statistics (PDF) |
| R3 |
Sorting: Heapsort, Dynamic Sets, Priority Queues |
| L6 |
Linear-time Sorting, Lower Bounds, Counting Sort, Radix Sort (PDF) |
| L7 |
Hashing: Chaining, Universal Hashing (PDF) |
| R4 |
Quiz 1 Review |
|
Quiz 1 |
| L8 |
Binary Search Trees (BST): Tree Walks, Analysis of Random BST (PDF) |
| R5 |
Relation of BST's to Quicksort |
| L9 |
Balanced Search Trees (PDF) |
| R6 |
Augmenting Data Structures |
| L10 |
Amortized Analysis: Disjoint Sets (PDF) |
| L11 |
More Amortized Analysis (PDF) |
| R7 |
Competitive Analysis |
| L12 |
Dynamic Programming (PDF) |
| L13 |
Greedy Algorithms, Graphs, Minimum Spanning Trees (PDF) |
| R8 |
Examples of Greedy Algorithms and Dynamic Programming |
| L14 |
Shortest Paths: Dijkstra's Algorithm, Breadth-first Search (PDF) |
| L15 |
Shortest Paths: Bellman-Ford, Shortest Paths in Dags, Difference Constraints (PDF) |
| R9 |
Depth-first Search: Edge Classification |
| L16 |
All-pairs Shortest Paths: Dynamic Programming, Floyd-Washall, Johnson’s Algorithm (PDF) |
| L17 |
Computational Geometry: Segment Intersection (PDF) |
| R10 |
Computational Geometry |
| L18 |
Computational Geometry: Closest Pair (PDF) |
| L19 |
Take-home Quiz
Ethics, Problem Solving (mandatory attendance) (PDF) |
| L20 |
Network Flow: Max-flow Min-cut Theorem (PDF) |
| L21 |
Network Flow: Edmonds-Karp Algorithm (PDF) |
| L22 |
String Matching: Rabin-Karp Algorithm (PDF) |
| R11 |
Final Exam Review |
| L23 |
Fast Fourier Transform |
| L24 |
NP-completeness, Approximation Algorithms (PDF) |
|
Final Exam |