CMSC-641 Algorithms: Supplemental Reading (fall 95)
The following selected books on algorithms and discrete
mathematics are recommended for reference and supplemental reading;
you may find
them helpful during this semester or at some future time.
Survey Texts (for graduates and advanced undergraduates)
-
Aho, Alfred;
John E. Hopcroft; and
Jeffrey Ullman,
The Design and Analysis of Computer Algorithms,
Addison-Wesley (1989).
[New edition of the authors' popular 1974 graduate text
that evolved from a graduate course at Cornell.]
-
Brassard, Gilles; and
Paul Bratley,
Algorithmics: Theory and Practice,
Prentice Hall (1996).
[Has nice chapters on how to solve
recurrences by characteristic equations and
on probabilistic algorithms.]
-
Cormen, Thomas H.;
Charles E. Leiserson; and
Ronald L. Rivest,
Introduction to Algorithms,
MIT Press and McGraw-Hill (1990).
[Clear, up-to-date, comprehensive text that evolved from
the undergraduate algorithms course at MIT. Has good problems.]
-
Kozen, Dexter C.,
The Design and Analysis of Algorithms,
Springer (1992).
Survey Texts (primarily for undergraduates)
-
Aho;
Hopcroft; and
Ullman,
Data Structures and Algorithms,
Addison-Wesley (1983).
[An elementary undergraduate text by the
authors of the popular 1974 graduate text.
More of a data structures text than an algorithms text.]
-
Baase, Sara,
Computer Algorithms:
Introductions to Design and Analysis,
Addison-Wesley (1988).
[A popular undergraduate text formerly used in CMSC--470;
revision of the terse first version.]
-
Horowitz, Ellis; and
Sartaj Sahni,
Fundamentals of Computer Algorithms,
Computer Science Press
(1978).
[The first algorithms text organized by
algorithm design strategies.]
-
Reingold;
Nievergelt; and
Deo,
Combinatorial Algorithms: Theory and Practice,
Prentice-Hall (1977).
-
Sedgewick, Robert,
Algorithms in Modula-3,
Addison-Wesley (1993).
[Elementary, non-mathematical text that evolved from a third-semester
computer science course at Brown. Includes some nice
geometric topics.]
Reference Works
-
Gonnet, G. H.,
Handbook of Algorithms and Data Structures,
Addison-Wesley (1984).
-
Knuth, Donald E.,
Fundamental Algorithms\/
in The Art of Computer Programming,
\hbox{vol.\ I}, Addison-Wesley (1973).
[A classic reference. Begins with a
nice survey of mathematical techniques.]
-
Knuth, Donald E.,
Seminumerical Algorithms\/
in The Art of Computer Programming,
\hbox{vol.\ }II, Addison-Wesley (1981).
[A classic reference. Contains nice
chapters on random number generation.]
-
Knuth, Donald E.,
Sorting and Searching\/
in The Art of Computer Programming,
\hbox{vol.\ III}, Addison-Wesley (1973).
[A classic reference.]
-
Melhorn, Kurt.,
Sorting and Searching\/ in
Data Structures and Algorithms,
\hbox{vol.\ I}, Springer (1984).
-
Melhorn, Kurt,
Graph Algorithms and NP-Completeness\/ in
Data Structures and Algorithms,
\hbox{vol.\ II}, Springer (1984).
-
Melhorn, Kurt,
Multidimensional Searching and
Computational Geometry\/ in
Data Structures and Algorithms,
\hbox{vol.\ III}, Springer (1984).
-
Purdom, Paul Walter; and Cynthia A. Brown,
The Analysis of Algorithms,
Holt, Rinehart and Winston (1985).
-
Sedgewick, Robert,
An Introduction to the Analysis
of Algorithms,
Addison-Wesley (Reading, MA, 1996).
-
van Leeuwen, ed.,
Handbook of Theoretical Computer Science,
volumn A,
MIT Press/Elsevier (1990).
[A collection of excellent advanced surveys
on algorithms and complexity theory.]
Parallel Algorithms
-
Akl, Selim G.,
The Design and Analysis of Parallel Algorithms,
Prentice Hall (1989).
-
Bertsekas, Dimitri P.; and
John N. Tsitsiklis,
Parallel and Distributed Computation: Numerical Methods,
Prentice Hall (1989).
[Good introduction to combinatorial optimization and numerical algorithms.]
-
Leighton, T.,
Introduction to Parallel Algorithms and Architectures:
Arrays, Trees, Hypercubes,
Morgan Kaufmann (1992).
[Excellent introduction and survey of parallel algorithms.]
-
Quinn, Michael J.,
Designing Efficient Algorithms
for Parallel Computers,
McGraw-Hill (1987).
-
Reif, John H., ed.,
Synthesis of Parallel Algorithms,
Morgan Kaufmann (1993). [Excellent collection of
introductory and survey articles on parallel algorithms.]
Specialized Works
-
Even, Shimon,
Graph Algorithms,
Computer Science Press (1979).
-
Gary, Michael R.; and
David S. Johnson,
Computers and Intractability:
A Guide to the Theory of NP-Completeness,
W. H. Freeman (1979).
[A popular introduction to NP-completeness.
Includes a lengthy list of NP-complete problems.]
-
Papadimitriou, Christos H.; and
Kenneth Steiglitz,
Combinatorial Optimization: Algorithms and Complexity,
Prentice-Hall (1982).
-
Li, Ming; and
Paul Vit\'{a}nyi,
An Introduction to Kolmogorov Complexity
and its Applications,
Springer (1993).
-
Tarjan, Robert Endre,
Data Structures and Network Algorithms,
CBMS-NSF regional conference series,
\hbox{no.\ 44}, SIAM (Philadelphia, PA, 1983).
[Has a nice description of amortized analysis.]
Algorithmics
-
Bently, Jon L.,
Programming Pearls,
Addison-Wesley (1986).
[A wonderful collection of Bentley's articles from his
``Programming Pearls'' column in the Communications
of the ACM. Fun and educational reading.]
-
Bently, Jon L.,
More Programming Pearls:
Confessions of a Coder,
Addison-Wesley (1988).
-
Bently, Jon L.,
Writing Efficient Programs,
Prentice-Hall (1982).
[Practical hints and tricks.]
-
Harel, D.,
Algorithmics: The Spirit of Computing,
Addison-Wesley (1987). [Fun reading.]
Discrete Mathematics
-
Epp, Susanna S.,
Discrete Mathematics with Applications,
Wadsworth (1990).
[Good elementary introduction to discrete mathematics,
including proof techniques. CMSC-203 text.]
-
Feller, William,
An Introduction to Probability Theory and its Applications,
\hbox{vol.\ I}, John Wiley (1968). %57
[An excellent advanced reference for probability.]
-
Graham, Ronald L.;
Donald E. Knuth; and
Oren Patashnik,
Concrete Mathematics,
Addison-Wesley (1989).
[Graduate-level topics in discrete mathematics.]
-
Hillman; Alexander; and Grassl,
Discrete and Combinatorial Mathematics,
Dellen (1986). [Nice survey of discrete math,
but out of print.]
-
Hoel, Paul G.;
Port, Sidney C.; and
Stone, Charles J.,
Introduction to Probability Theory,
Houghton Mifflin (1971).
[Elementary introduction to probability theory.]
-
Roberts, Fred.,
Applied Combinatorics,
Prentice-Hall (1984).
[Intermediate-level topics in discrete mathematics.
Excellent reference for combinatorics.]