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.
References:
1. Introduction to algorithms: Cormen, Leiserson, Rivest and Stein
2.
Online lecture notes by Jeff Erickson
3. Algorithm Design: Kleinberg and Tardos
4. The Algorithm Design Manual by Steven Skiena