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 |