P±²³´µ²
Michael T. Goodrich and Roberto Tamassia.
Algorithm Design: Foundations,
Analysis, and Internet Examples
. John Wiley & Sons, ³±±³.
Jon Kleinberg and Éva Tardos.
Algorithm Design
. Addison-Wesley, ³±±¸.
Borrow it from the library if you can.
Donald Knuth.
The Art of Computer Programming
, volumes ´–·A. Addison-
Wesley, ´¶¶º and ³±´´. (My parents gave me the first three volumes for
Christmas when I was ´·. Alas, I didn’t actually read them until
much
later.)
Udi Manber.
Introduction to Algorithms: A Creative Approach
.
Addison-
Wesley, ´¶µ¶. (I used this textbook as a teaching assistant at Berkeley.)
Ian Parberry.
Problems on Algorithms
. Prentice-Hall, ´¶¶¸ (out of print).
Downloadable from https://larc.unt.edu/ian/books/free/license.html after
you agree to make a small charitable donation. Please honor your agreement.
Robert Sedgewick and Kevin Wayne.
Algorithms
. Addison-Wesley, ³±´´.
Robert Endre Tarjan.
Data Structures and Network Algorithms
. SIAM, ´¶µ².
Class notes from my own algorithms classes at Berkeley, especially those
taught by Dick Karp and Raimund Seidel.
Lecture notes, slides, homeworks, exams, video lectures, research papers,
blog posts, StackExchange questions and answers, podcasts, and full-fledged
MOOCs made freely available on the web by innumerable colleagues around
the world.
About the Exercises
Each chapter ends with several exercises, most of which I have used at least
once in a homework assignment, discussion/lab section, or exam. The exercises
are
not
ordered by increasing difficulty, but (generally) clustered by common
techniques or themes. Some problems are annotated with symbols as follows:
Red hearts indicate particularly challenging problems; many of these have
appeared on qualifying exams for PhD students at Illinois. A small number
of
really
hard problems are marked with
large hearts.
Blue diamonds indicate problems that require familiarity with material
from later chapters, but thematically belong where they are. Problems that
require familiarity with
earlier
material are not marked, however; the book,
like life, is cumulative.
Green clubs indicate problems that require familiarity with material out-
side the scope of this book, such as finite-state machines, linear algebra,
probability, or planar graphs. These are rare.
Black spades indicate problems that require a significant amount of grunt
work and/or coding. These are rare.
iv