MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503)

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. Created by MIT OpenCourseWare.


Average Course Length

45 hours


Skill Level

Intermediate



Pick a lesson


1: Lecture 1
2: Lecture 2
3: Lecture 3
4: Lecture 4
5: Lecture 5
6: Lecture 6
7: Lecture 7
8: Lecture 8
9: Lecture 9
10: Lecture 10
11: Lecture 11
12: Lecture 12
13: Lecture 13
14: Lecture 14
15: Lecture 15
16: Lecture 16
17: Lecture 17
18: Lecture 18
19: Lecture 19
20: Lecture 22
21: Lecture 23
22: Lecture 24
23: Lecture 25