Introduction to Algorithms

This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

This course was also taught as part of the Singapore-MIT Alliance (SMA) programme as course number SMA 5503 (Analysis and Design of Algorithms).


Lecture 6 (01:08:49)

Order Statistics, Median

Step 60%
Lecture 7 (01:17:40)

Hashing, Hash Functions

Step 70%
Lecture 12 (01:25:32)

Skip Lists

Step 120%
Lecture 20 (01:15:08)

Advanced Topics

Step 2054%
Lecture 21 (01:16:48)

Advanced Topics (cont.)

Step 210%
Lecture 22 (01:24:48)

Advanced Topics (cont.)

Step 220%


Leiserson, Charles, and Erik Demaine. 6.046J Introduction to Algorithms (SMA 5503), Fall 2005. (Massachusetts Institute of Technology: MIT OpenCourseWare),


Prof. Charles Leiserson
Prof. Erik Demaine

Additional Notes

schooX is not affiliated or endorsed by Massachusetts Institute of Technology. Please consider donating to MIT by clicking on the donation button below.