Here are some tips for winnowing the available books to a handful of
   candidates:
     
     -  Compare the book’s table of contents with the syllabus
     to make sure the topics mentioned in the syllabus (both the section
     titles and the lecture titles) appear in the table of contents.
     You can also look in the index, but a topic mentioned in the
     table of contents suggests more thorough coverage than a topic
     mentioned only in the index (although a topic with a sizeable
     index entry suggests thorough coverage too).
     
-  Compare test questions and answers in previous versions of
     the course to the material covered in the book.  The book may not
     lay out the answer (you are, after all, dealing with test
     questions), but you should be able to piece together the questions
     and answers from relevant parts of the book.
     
   Once you have the candidate books, you can use your tastes and preferences 
   to pick the final one or two books for the course.
   
  
  
Books with call numbers can be found in the library.
   
   
   
   
  
Granville Barnett and Luca Del Tongo,
  Data Structures and Algorithms, HTTP://dotnetslackers.com .
A PDF e-book; looks terrible on a Kindle 1.  It’s pragmatic, like an
  O’Reilly book; would work well when used with a more advanced
  textbook.  
  
Thomas Cormen, Charles Lieserson, and Ronald Rivest, Introduction
  to Algorithms, second edition, MIT Press, Cambridge, Mass., 1993.
  QA 76.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.
  
Mark Guzdial and Barbara Ericson,
 Problem Solving with Data Structures Using Java, Prentice Hall, Upper
 Saddle River, N.J., 2011.
You might be familiar with Guzdial’s Python multimedia book; this
  book is along the same lines except it emphasizes data structures and
  algorithms rather than introductory programming, and it uses Java rather than
  Python.  The multimedia parts make this book less straightforward than other
  Java data structures books, but perhaps more interesting.
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 un-mnemonic, for example), and the
  algorithm descriptions are terse and not well keyed to the algorithms
  themselves.
  
John Lewis and Joseph Chase,
   Java Software Structures, 3rd ed. (the shipping container book),
   Addison-Wesley, Reading, Mass., 2010.
A good, concise data structures and algorithms book.
  
Kurt Mehlhorn and Peter Sanders,
  Algorithms and Data Structures, Springer, 2008. QA
  76.9 D35 M47.
An upper-level book about the data structures and algorithms that should be
  part of every programmer’s toolkit.  
Larry Nyhoff,
  ADTs, Data Structures, and Problem Solving with C++, second edition,
  Prentice Hall, 2005.
The book’s in the wrong language, but it covers the material
  thoroughly and in detail.  
Mark Allen Weiss, Data Structures
  & Problem Solving Using Java, 4th ed. (the artichoke book),
  Addison-Wesley, Reading, Mass., 2010).
A good, basic data structures and algorithms book, more broad than deep.  The
  book’s division into parts is a bit overdone, and the the book’s size may make navigation a bit daunting, but it’s worth getting
  over those humps and into the book.
Nicklaus Wirth, Algorithms + Data Structures = Programs, Addison-Wesley,
  Reading, Mass., 1976. QA 76.6 W56.
Another classic, aimed at lower-level undergraduates. A book to recommend to
  your kid sister or brother.
  
   
   
   
   
  
Jon Bentley, Programming Pearls, Addison-Wesley, Reading, Mass.,
  1986. QA 76.6 B454.
  
Jon Bentley, More Programming Pearls: Confessions of a Coder,
  Addison-Wesley, Reading, Mass., 1990.
These books collect Bently’s 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, that is, on
  performance measurement, analysis, and improvement.  
David Berlinski, The Advent of the Algorithm,
  Harcort, New York, 2000.  QA 9.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.
Written for upper-level undergraduates, this book provides a good, general
  purpose introduction to algorithms.
  
Ronald Garham, Donald Knuth, and Oren Patashnik, Concrete
  Mathematics, Addison-Wesley, 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).
  
Donald Knuth, The Art of Computer Programming, Volume 1: Fundamental
  Algorithms, Second Edition, Addison-Wesley, Reading, Mass.,
  1973. QA 76.6 K64.
  
Donald Knuth, The Art of Computer Programming, Volume 2: Seminumerical
  Algorithms, Second Edition, Addison-Wesley, Reading, Mass.,
  1981. QA 76.6 K64.
  
Donald Knuth, The Art of Computer Programming, Volume 3: Sorting and
  Searching, Second Edition, Addison-Wesley, 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, Addison-Wesley, 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 upper-level undergraduates. Has
  a good, informal presentation on asymptotic analysis (big-oh analysis) and
  its pitfalls.
  
  
  | This page last modified on 31 August 2010. | 
      |