LEC # | TOPICS | |
---|---|---|
Unit 1: Introduction | ||
1 | Algorithmic thinking, peak finding (PDF - 1.9MB) | |
2 |
Models of computation, document distance
|
|
Unit 2: Sorting and Trees | ||
3 | Insertion sort, merge sort (PDF) (Courtesy of Charles Leiserson, Piotr Indyk, Constantinos Daskalakis, and Srini Devadas. Used with permission.) | |
4 | Heaps and heap sort (PDF) (Courtesy of Charles Leiserson, Piotr Indyk, Constantinos Daskalakis, and Srini Devadas. Used with permission.) | |
5 | Binary search trees, BST sort (PDF - 1.2MB) | |
6 |
AVL trees, AVL sort
|
|
7 |
Counting sort, radix sort, lower bounds for sorting |
|
Unit 3: Hashing | ||
8 |
Hashing with chaining |
|
9 |
Table doubling, Karp-Rabin |
|
10 | Open addressing, cryptographic hashing (PDF) | |
Unit 4: Numerics | ||
11 | Integer arithmetic, Karatsuba multiplication (PDF) | |
12 | Square roots, Newton’s method (PDF) | |
Unit 5: Graphs | ||
13 |
Breadth-first search (BFS) |
|
14 |
Depth-first search (DFS), topological sorting |
|
Unit 6: Shortest Paths | ||
15 | Single-source shortest paths problem (PDF) | |
16 | Dijkstra (PDF) | |
17 | Bellman-Ford (PDF - 1.2MB) | |
18 | Speeding up Dijkstra (PDF - 1.1MB) | |
Unit 7: Dynamic Programming | ||
19 |
Dynamic programming I: Fibonacci, shortest paths |
|
20 |
Dynamic programming II: text justification, blackjack |
|
21 |
Dynamic programming III: parenthesization, edit distance, knapsack |
|
22 |
Dynamic programming IV: guitar fingering, Tetris, Super Mario Bros. |
|
Unit 8: Advanced Topics | ||
23 |
Computational complexity |
|
24 |
Topics in algorithms research |
Lecture Notes
Course Info
Instructors
Departments
As Taught In
Fall
2011
Level
Learning Resource Types
theaters
Lecture Videos
theaters
Recitation Videos
assignment_turned_in
Problem Sets with Solutions
grading
Exams with Solutions
assignment_turned_in
Programming Assignments with Examples
notes
Lecture Notes