Synopses & Reviews
The bible of all fundamental algorithms and the work that taught many of today's software developers most of what they know about computer programming.—Byte, September 1995
I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up.
—Charles Long
If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing.
—Bill Gates
It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers.
—Jonathan Laventhol
The first revision of this third volume is the most comprehensive survey of classical computer techniques for sorting and searching. It extends the treatment of data structures in Volume 1 to consider both large and small databases and internal and external memories. The book contains a selection of carefully checked computer methods, with a quantitative analysis of their efficiency. Outstanding features of the second edition include a revised section on optimum sorting and new discussions of the theory of permutations and of universal hashing.
About the Author
Donald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the Tex and Metafont systems for computer typesetting, and for his prolific and influential writing. Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes full time to the completion of these fascicles and the seven volumes to which they belong.
Table of Contents
5. Sorting.
Combinatorial Properties of Permutations.
Inversions.
Permutations of a Multiset.
Runs.
Tableaux and Involutions.
Internal sorting.
Sorting by Insertion.
Sorting by Exchanging.
Sorting by Selection.
Sorting by Merging.
Sorting by Distribution.
Optimum Sorting.
Minimum-Comparison Sorting.
Minimum-Comparison Merging.
Minimum-Comparison Selection.
Networks for Sorting.
External Sorting.
Multiway Merging and Replacement Selection.
The Polyphase Merge.
The Cascade Merge.
Reading Tape Backwards.
The Oscillating Sort.
Practical Considerations for Tape Merging.
External Radix Sorting.
Two-Tape Sorting.
Disks and Drums.
Summary, History, and Bibliography.
6. Searching.
Sequential Searching.
Searching by Comparison of Keys.
Searching an Ordered Table.
Binary Tree Searching.
Balanced Trees.
Multiway Trees.
Digital Searching.
Hashing.
Retrieval on Secondary Keys.
Answers to Exercises.
Appendix A: Tables of Numerical Quantities.
Fundamental Constants (decimal).
Fundamental Constants (octal).
Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers.
Appendix B: Index to Notations.
Index and Glossary. 0201896850T04062001