Back to my homepage
### Syllabus (Approx):

Basics: Models of computation, asymptotic notation, recursion.

Divide-and-conquer paradigm: Binary search, merge sort, bucket and radix sort, medians and order statistics, and other problems.

Dynamic programming: Edit distance, Viterbi algorithm, and other examples.

Greedy algorithms: Minimum change, Huffman codes, and other examples.

Graph algorithms: BFS, DFS, topological sorting, shortest path algorithms, maximum flow.

Other topics: Backtracking, string matching, Fast Fourier Transform, etc.

Divide-and-conquer paradigm: Binary search, merge sort, bucket and radix sort, medians and order statistics, and other problems.

Dynamic programming: Edit distance, Viterbi algorithm, and other examples.

Greedy algorithms: Minimum change, Huffman codes, and other examples.

Graph algorithms: BFS, DFS, topological sorting, shortest path algorithms, maximum flow.

Other topics: Backtracking, string matching, Fast Fourier Transform, etc.

2. Online lecture notes by Jeff Erickson

3. Algorithm Design: Kleinberg and Tardos

4. The Algorithm Design Manual by Steven Skiena