Jon Bentley, Programming Pearls, AddisonWesley, Reading, Mass.,
1986. QA 76.6 B453.
Jon Bentley, More Programming Pearls: Confessions of a Coder,
AddisonWesley, Reading, Mass., 1990. QA 76.6.B452.
These books collect Bentlys Programming Pearls column that ran in the
Communications of the ACM. Every working programmer should at least read (and
understand) both volumes; after that you can decide whether or not you should
buy them (I did). Bently is particularly strong on what you do after you've
designed and implemented your algorithms
David Berlinski, The Advent of the Algorithm,
Harcort, New York, 2000. QA9.58 .B47.
A popular, historical development of the idea of an algorithm, and what that
idea means today.
Gilles Brassard and Paul Bratly, Algorithmics: Theory and Practice,
Prentice Hall, Englewood Cliffs, New Jersey, 1988. QA 9.6 B73.
Written for upperlevel undergraduates, this book provides a good, general
purpose introduction to algorithms.
Thomas Cormen, Charles Lieserson, and Ronald Rivest, Introduction
to Algorithms, second edition, MIT Press, Cambridge, Mass., 1993.
QA76.6.I5858.
An excellent book, thorough in both the theory and practice of algorithm
design and analysis. This book serves well both the student and the working
programmer.
Ronald Garham, Donald Knuth, and Oren Patashnik, Concrete
Mathematics, AddisonWesley, Reading, Mass., 1989. QA 39.2 G733.
A rigorous and detailed presentation of the mathematics behind algorithm
analysis. Written for advanced graduate students, this is not a book for the
faint of heart (or brain).
E. Horowitz and S. Sahni, Fundamentals of Computer Algorithms, Computer
Science Press, Rockville, Maryland, 1978.
This book has the distinction of being the worst algorithms book I ever
used. The algorithms are presented an a short and unhelpful fashion (all
variable names are single letter and unmnemonic, for example), and the
algorithm descriptions are terse and not well keyed to the algorithms
themselves.
Donald Knuth, The Art of Computer Programming, Volume 1: Fundamental
Algorithms, Second Edition, AddisonWesley, Reading, Mass., 1973. QA 76.6
K64.
Donald Knuth, The Art of Computer Programming, Volume 2: Seminumerical
Algorithms, Second Edition, AddisonWesley, Reading, Mass., 1981. QA 76.6
K64.
Donald Knuth, The Art of Computer Programming, Volume 3: Sorting and
Searching, Second Edition, AddisonWesley, Reading, Mass., 1973. QA 76.6
K64.
Even though Bill Gates has blurbs on the dust jackets of the second editions,
these are still the books to have for algorithms, their design, and their
analysis. Buy them, read them, use them in your work, and savagely ridicule
code produced by programmers that have done none of these things.
Udi Manber, Introduction to Algorithms, AddisonWesley, Reading, Mass.,
1989. QA 76.9 D35 M36.
An excellent book that uses recursion as the principle algorithm design
technique.
Gregory Rawlins, Compared to What?, Computer Science Press, New York,
New York, 1992.
A good introduction to algorithms, pitched to upperlevel undergraduates. Has
a good, informal presentation on asymptotic analysis (bigoh analysis) and
its pitfalls.
Nicklaus Wirth, Algorithms + Data Structures = Programs, AddisonWesley,
Reading, Mass., 1976. QA 76.6 W56.
Another classic, aimed at lowerlevel undergraduates. A book to recommend to
your kid sister or brother.
This page last modified on 25 August 2008.

