These are some notes I've written about algorithms. They are heavily inspired by multiple textbooks: Algorithms by Dasgupta, Papadimitriou, and Vazirani; Algorithms by Erickson; Algorithm Design by Kleinberg and Tardos; and Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein. I recommend all of them.
You can get the whole thing here, or download individual chapters below. (Some chapters reference each other, but for the most part, every chapter is self-contained.)
- Chapter 1: Basic Graph Algorithms
- Chapter 2: Greedy Algorithms
- Chapter 3: Dynamic Programming
- Chapter 4: Paths in Graphs
- Chapter 5: Maximum Flows
- Chapter 6: Linear Programming
- Chapter 7: NP-Hard Problems
- Chapter 8: Approximation Algorithms
Please feel free to send me any feedback (even if it's only about a typo). My email address is "nusnivek [at] gmail [dot] com". You can also message me anonymously using this form.