# Lecture Notes

This section contains a complete set of lecture notes for the course.

ses # TOPICS
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