Read: Algorithms” Online

Online Lectures:

MIT 6.006 Introduction to Algorithms, Fall 2011

Victor Costan


1. Algorithmic Thinking, Peak Finding

2. Models of Computation, Document Distance

3. Insertion Sort, Merge Sort

4. Heaps and Heap Sort

5. Binary Search Trees, BST Sort

6. AVL Trees, AVL Sort

7. Counting Sort, Radix Sort, Lower Bounds for Sorting

8. Hashing with Chaining

9. Table Doubling, Karp-Rabin

10. Open Addressing, Cryptographic Hashing

11. Integer Arithmetic, Karatsuba Multiplication

12. Square Roots, Newton’s Method

13. Breadth-First Search (BFS)

14. Depth-First Search (DFS), Topological Sort

15. Single-Source Shortest Paths Problem

16. Dijkstra

17. Bellman-Ford

18. Speeding up Dijkstra

19. Dynamic Programming I: Fibonacci, Shortest Paths

20. Dynamic Programming II: Text Justification, Blackjack

21. DP III: Parenthesization, Edit Distance, Knapsack

22. DP IV: Guitar Fingering, Tetris, Super Mario Bros.

23. Computational Complexity

Advanced Algorithms
MIT 6.854 (Advanced Algorithms), Spring 2016
Andrew Xia


MIT 6.854 Spring 2016 Lecture 3: Consistent Hashing and Random Trees

MIT 6.854 Spring 2016 Lecture 4: Distinct Elements and Heavy Hitters

MIT 6.854 Spring 2016 Lecture 5: Johnson Lindenstrauss Lemma and Extensions

MIT 6.854 Spring 2016 Lecture 6: Nearest Neighbor Search and LSH

MIT 6.854 Spring 2016 Lecture 7: Flow Decomposition and Augmenting Paths

MIT 6.854 Spring 2016 Lecture 8: Capacity Scaling and Min Cost Matching

Open Textbooks:
  1. Nievergelt and Hinricht: Algorithms and Data Structures With Applications to Graphics and Geometry
Further Reading: