The textbook for the course
Introduction to Algorithms (Second Edition) by Cormen,
Leiserson, Rivest, and Stein (hereafter referred to as "CLRS"). If
you have a (very) old version of CLRS, known as "CLR", you can use
that too. 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 cannot understand what the instructor
readings 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, Algorithms
by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani, 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.