Design and Analysis of Algorithms By Massachusetts Institute of Technology is an intermediate algorithm course which teaches various techniques to design and analysis of algorithms.
Various topics included in this lecture Notes are
1. Overview, Interval Scheduling (PDF)
2. Divide & Conquer: Convex Hull, Median Finding (PDF)
3. Divide & Conquer: FFT (PDF)
4. Divide & Conquer: Van Emde Boas Trees (PDF)
5. Amortization: Amortized Analysis (PDF)
6. Randomization: Matrix Multiply, Quicksort (PDF)
7. Randomization: Skip Lists (PDF)
8. Randomization: Universal & Perfect Hashing (PDF)
9. Augmentation: Range Trees (PDF)
10. Dynamic Programming: Advanced DP (PDF)
11. Dynamic Programming: All-pairs Shortest Paths (PDF)
12. Greedy Algorithms: Minimum Spanning Tree (PDF)
13. Incremental Improvement: Max Flow, Min Cut (PDF)
14. Incremental Improvement: Matching (PDF) Baseball Elimination Notes (PDF)
15. Linear Programming: LP, Reductions, Simplex (PDF)
16. Complexity: P, NP, NP-completeness, Reductions (PDF) )
17. Complexity: Approximation Algorithms (PDF)
18. Complexity: Fixed-parameter Algorithms (PDF)
19. Synchronous Distributed Algorithms: Symmetry-breaking. Shortest-paths Spanning Trees (PDF)
20. Asynchronous Distributed Algorithms: Shortest-paths Spanning Trees (PDF)
21. Cryptography: Hash Functions (PDF)
22. Cryptography: Encryption (PDF)
23. Cache-oblivious Algorithms: Medians & Matrices (PDF)
24. Cache-oblivious Algorithms: Searching & Sorting (PDF)
Read Online/Download