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
    assignment_turned_in
    Problem Sets with Solutions
  
    grading
    Exams with Solutions
  
    notes
    Lecture Notes
  
        
          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.)