-
Aho, Alfred V., John E. Hopcroft, and Jeffrey D. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974. The classic text, but it lacks topics in network flows and linear programming, as well as more recent algorithms.
-
Aho, Alfred V., John E. Hopcroft, and Jeffrey D. Ullman. Data Structures and Algorithms. Addison-Wesley, 1983. Revised and more elementary version of the first six chapters of The Design and Analysis of Computer Algorithms.
-
Baase, Sara. Computer Algorithms: Introduction to Design and Analysis. 2nd ed. Addison-Wesley, 1988. General reference, although the exposition is sometimes terse or sketchy.
-
Bentley, Jon. Programming Pearls. Addison-Wesley, 1986. Applications of algorithm design techniques to software engineering.
-
Bentley, Jon. More Programming Pearls. Addison-Wesley, 1988. More applications of algorithm design techniques to software engineering.
-
Bentley, Jon Louis. Writing Efficient Programs. Prentice-Hall, 1982. Performance hacking extraordinaire.
-
Brassard, Gilles and Paul Bratley. Algorithmics: Theory and Practice. Prentice-Hall, 1988. Good examples and problems. Focus on methods rather than specific problems.
-
Chung, Kai Lai. Elementary Probability Theory with Stochastic Processes. Springer-Verlag, 1974. Intuitive introduction to probability.
-
Even, Shimon. Graph Algorithms. Computer Science Press, 1979. Broad treatment of graph algorithms, including network flow and planarity.
-
Feller, William. An Introduction to Probability Theory and Its Applications. John Wiley & Sons, Vol 1. 1968, Vol 2. 1971. Excellent reference for probability theory.
-
Garey, Michael R. and David S. Johnson. Computers and Intractibility: A Guide to the Theory of NP-Completeness. San Francisco: W. H. Freeman & Co., 1979. Reference book devoted to NP-completeness. The second half contains an extensive list of NP-complete problems and references to algorithms in the literature for polynomial-time special cases.
-
Gonnet, G. H. Handbook of Algorithms and Data Structures. Addison-Wesley, 1984. Code in Pascal and C, comparisons of actual running times, and pointers to analysis in research papers.
-
Gusfield, Dan. Algorithms on Strings, Trees, and Sequences. Cambridge University Press, 1997. General treatment of algorithms that operate on character strings and sequences.
-
Horowitz, Ellis and Sartaj Sahni. Fundamentals of Computer Algorithms. Computer Science Press, 1978. Good on data structures, dynamic programming, and branch-and-bound algorithms.
-
Kingston, Jeffrey H. Algorithms and Data Structures: Design, Correctness, Analysis. Addison-Wesley Publishing Co., 1991. A nice introductory book on data structures, with a good chapter on algorithm correctness.
-
Knuth, Donald E. The Art of Computer Programming. Addison-Wesley. Encyclopedic work in three volumes: (1) Fundamental Algorithms, (2) Seminumerical Algorithms, and (3) Sorting and Searching.
-
Lawler, Eugene L. Combinatorial Optimization. Holt, Rinehart, and Winston, 1976. Graph algorithms (dense graphs), network flows, and linear programming. First few chapters are excellent.
-
Liu, C. L. Introduction to Combinatorial Mathematics. McGraw-Hill, 1968. Combinatorial mathematics relevant to computer science. Excellent problems.
-
Manber, Udi. Introduction to Algorithms. Addison-Wesley, 1989. Elementary text with an emphasis on creativity.
-
Mehlhorn, Kurt. Data Structures and Algorithms. Springer-Verlag, 1984. Three volumes: (1) Sorting and Searching, (2) Graph Algorithms and NP-Completeness, and (3) Multidimensional Searching and Computational Geometry. Lecture notes on basic and advanced topics.
-
Niven, Ivan and Herbert S. Zuckerman. An Introduction to the Theory of Numbers. John Wiley & Sons, 1980. Readable introduction to number theory.
-
Papadimitriou, Christos H. and Kenneth Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, 1982. Linear programming and its variants.
-
Press, William P., Brian P. Flannery, Saul A. Teukolsky, and William T. Vetterling. Numerical Recipies in C: The Art of Scientific Computing. Cambridge: Cambridge University Press, 1988. Code for numerical algorithms.
-
Reingold, E. M., J. Nievergelt, and N. Deo. Combinatorial Algorithms: Theory and Practice. Prentice-Hall, 1977. Good on recurrence relations and binary search trees.
-
Sedgewick, Robert . Algorithms. 2nd ed. Addison-Wesley, 1988. Elementary text with an excellent breadth of topics. Light on analysis, but lots of figures.
-
Sipser, Michael. Introduction to the Theory of Computation. PWS Publishing Co., 1997. A good text on computability and complexity theory.
-
Tarjan, Robert Endre. Data Structures and Network Algorithms. Society for Industrial and Applied Mathematics, 1983. Advanced book with tons of good stuff.