Electrical Engineering and Computer Science
Introduction to Algorithms
Lecture 1: Algorithmic Thinking, Peak Finding
Lecture 2: Models of Computation, Document Distance
Lecture 3: Insertion Sort, Merge Sort
Lecture 4: Heaps and Heap Sort
Lecture 5: Binary Search Trees, BST Sort
Lecture 6: AVL Trees, AVL Sort
Lecture 7: Counting Sort, Radix Sort, Lower Bounds for Sorting
Lecture 8: Hashing with Chaining
Lecture 9: Table Doubling, Karp-Rabin
Lecture 10: Open Addressing, Cryptographic Hashing
Lecture 11: Integer Arithmetic, Karatsuba Multiplication
Lecture 12: Square Roots, Newton's Method
Lecture 13: Breadth-First Search (BFS)
Lecture 14: Depth-First Search (DFS), Topological Sort
Lecture 15: Single-Source Shortest Paths Problem
Lecture 16: Dijkstra
Lecture 17: Bellman-Ford
Lecture 18: Speeding up Dijkstra
Lecture 19: Dynamic Programming I: Fibonacci, Shortest Paths
Lecture 20: Dynamic Programming II: Text Justification, Blackjack
Lecture 21: Dynamic Programming III: Parenthesization, Edit Distance, Knapsack
Lecture 22: Dynamic Programming IV: Guitar Fingering, Tetris, Super Mario Bros.
Lecture 23: Computational Complexity
Lecture 24: Topics in Algorithms Research
Don't show me this again
This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.
MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.
No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.
Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.
Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)
Learn more at Get Started with MIT OpenCourseWare