-
Insertion sort
- Asymptotic notations (notes)
-
Dynamic programming I
- Dynamic programming II (notes)
-
Review of elementary data structures and graph algorithms
-
Maximum flow I
-
Maximum flow II
-
Introduction to linear programming
-
Linear programming: standard and slack forms
-
The simplex algorithm I
-
The simplex algorithm II
-
Interior point methods
-
Introduction to computational complexity I
-
Introduction to computational complexity II
-
Introduction to computational complexity III
- Algorithms for vertex cover (notes)
- Greedy algorithm for set cover (notes)
-
Local search and scheduling jobs on identical parallel machines
-
The knapsack problem
-
The k-center problem
- Randomized approximation algorithm for MAX 3-SAT (notes)
- Randomized selection (notes)
-
Quicksort
- Random binary search trees (notes)
-
Fast Fourier transform I
- Fast Fourier transform II (notes)
- Tail inequalities (notes)
-
Randomized distributed algorithms
-
Set cover and deterministic rounding