Books about Algorithms

Paul Taylor

None of these books is specifically recommended.
Knuth's book is the Great Grand-daddy of books on algorithms, but much of its emphasis is on intricate calculations of precisely how many instructions are executed.
Sedgewick's and Weiss's books are more modern and more student-friendly, but owe much to Knuth.
All of these books make heavy use of Calculus. The reasons for this are more a matter of the culture of American universities than what is actually relevant to the performance of these algorithms when you program them.
On the other hand, what is missing from the American tradition is proof of correctness of the algorithms.
The book by Broda et al., which was based on the courses at Imperial College that correspond to our Logic and Algorithms courses, heavily influenced my way of teaching this course.
The book by Baase is actually the most similar to my course, but it is seriously lacking in precision, both in correctness and complexity analysis.
I am not telling you to buy any of these books, but if you do choose to buy any of them, you should consider the balance between your short-term need to learn the material in this course, and the long-term usefulness of the book in your programming career. Broda is better as a teaching book, Weiss as a programmer's book. You will find yourself looking at Weiss's book long into the future, but you will probably never use Broda's book again.
Richard Bornat recommended Weiss's book when he taught this course, but I found that his "look - no hands!" attitude to programming was a serious obstacle to my teaching students what I wanted them to learn.

The QA76 numbers tell you where to find the books in QMW Library.
Just going to the appropriate section of the library is often a quicker way of finding things out than using bibliographies and catalogues.
If the Web interface for the library catalogue had been designed according to the straightforward and well thought out original principles of the Web, it would have been possible for me to do the search for you and bookmark the pages for the books themselves. Then you would have been able to find out directly whether there are any copies currently available in the library. Unfortunately, the designer of this Web interface was "clever" and used JavaScript, so this simple and obvious application of the library catalogue is not possible.
The links behind the authors' names take you via Hypatia to other information about these people, such as their other publications and how to contact them.
My own book is not relevant to this course: it is listed for reasons of vanity.

Baase, Sara, van  Gelder, Allen, Computer Algorithms: Introduction to Design and Analysis, Addison-Wesley, 1999, QA 76.9.
Broda, Krysia, Eisenbach, Susan, Khoshnevisan, Hessam, Vickers, Steven, Reasoned Programming, Prentice Hall, International Series in Computer Science, 1994, 0-13-098831-6.
Knuth, Donald E., The Art of Computer Programming: Volume III, Sorting and Searching, Addison-Wesley, 1973, 0-201-89685-0, QA76.6.K64.
Knuth, Donald E., Literate Programming, In Literate Programming, Stanford University Center for the Study of Language and Information, Lecture Notes, 27, 1991, 0-937073-80-6 (paperback), 0-937073-81-4 (hardcover), QA76.6 .K644 1991.
Rowe, Glenn, An Introduction to Data Structures and Algorithms with Java, Prentice-Hall, 1997, 0-13-857749-8, QA76.73.
Sedgewick, Robert, Algorithms, Addison-Wesley Series in Computer Sience, 1988, 0-201-06673-4, QA76.6.
Sedgewick, Robert, Algorithms in Java, Parts 1-4, Addison-Wesley, 1998, 0-201-36120-5, QA76.73.
Taylor, Paul, Practical Foundations of Mathematics, Cambridge University Press, Cambridge Studies in Advanced Mathematics, 1999, 0-521-63107-6.
Weiss, Mark Allen, Data Structures and Problem Solving Using Java, Addison-Wesley, 1998, 0-201-54991-3, QA76.73.

This is www.PaulTaylor.EU/algorithms/books.html and it was derived from algorithms/books.tex which was last modified on 21 July 2007.