Design and Analysis of Algorithms

A directed graph with three sources, three sinks (two of which are distinct), and several other nodes.

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.)


MIT Course Number

6.046J / 18.410J

As Taught In

Spring 2012



Cite This Course

Course Features

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 flow, computational geometry, number-theoretic algorithms, polynomial and matrix calculations, caching, and parallel computing.

Other OCW Versions

OCW has published multiple versions of this subject. Question_OVT logo

Dana Moshkovitz, and Bruce Tidor. 6.046J Design and Analysis of Algorithms, Spring 2012. (Massachusetts Institute of Technology: MIT OpenCourseWare), (Accessed). License: Creative Commons BY-NC-SA

For more information about using these materials and the Creative Commons license, see our Terms of Use.