## Algorithms

This is a mini textbook I've written about algorithms. At Duke (where I am currently a graduate student), the undergraduate algorithms course in the computer science department is known as CPS 330 (hence the title).

This document is 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; more details can be found in the preface of my document.

You can get the whole thing here, or download individual chapters below. (Note that many 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.