Course Description
Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network …
Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow, computational geometry, number-theoretic algorithms, polynomial and matrix calculations, caching, and parallel computing.
Course Info
Learning Resource Types
grading
Exams with Solutions
notes
Lecture Notes
assignment
Problem Sets
Problem Set Solutions
An instance of the multi-commodity flow problem. This could be used to represent the transport of emergency relief supplies after a natural disaster. See Lecture 13 for more information. (Image courtesy of Ben Zinberg.)