We will be providing lecture notes
covering all the material in this course, but we would like
you to have a book to give you more detailed coverage (as
well as an alternative perspective if you find my own
confusing!). We recommend you get one of
the following:
- Introduction to Algorithms, by Cormen, Leiserson, Rivest, and
Stein (hereafter referred to as "CLRS"). It's big, it's
fairly expensive, but it is the gold standard of
algorithms books with a lot of material. Based on the
Algorithms course at MIT.
- Algorithms, by Dasgupta, Papadimitriou, and Vazirani
(herafter referred to as "DPV"). Smaller, cheaper, more
informal. A new book based on Algorithms courses at
UC Berkeley and UCSD.
Specific
readings in CLRS are listed on the course schedule. It is recommended that you
skim the reading before lecture, with a more thorough read afterwards.
Other helpful material can be found in: Algorithm Design by
J. Kleinberg and E. Tardos, Data Structures
and Network Algorithms by R. E.
Tarjan, Randomized Algorithms by Motwani and Raghavan, Programming
Pearls by J. Bentley, Introduction to Algorithms: a Creative
Approach by Manber, and the classic Aho-Hopcroft-Ullman book.