Introduction to Algorithms
-
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