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