The Art of Computer Programming is a comprehensive monograph written by
Donald Knuth which covers all kinds of
algorithms . The first three volumes are published, two others are planned. Originally, it was planned as a single volume of seven chapters, but Knuth soon decided to expand each chapter to an entire volume. Along the way, Knuth was interrupted by his increasing dissatisfaction with the quality of scientific typesetting, and decided to spend a few months working up something more suitable. Eight years later, he returned with
TeX. The intended six and seventh chapters, on language parsing and compilation techniques, are promised at some time in the distant future, and there must be substantial doubt that Knuth will be alive to finish them.
- Volume 1 - Fundamental Algorithms
- Volume 2 - Seminumerical Algorithms
- Volume 3 - Sorting and Searching
- Volume 4 - Combinatorial Algorithms, in preparation.
- Volume 4A, Enumeration and Backtracking
- Volume 4B, Graph and Network Algorithms
- Volume 4C and possibly 4D, Optimization and Recursion
- Volume 5 - Syntactic Algorithms, in preparation.
All examples in the books use a language called "MIX assembly language," which runs on the hypothetical MIX computer.
(Currently, the MIX computer is being replaced by the MMIX computer, which is a RISC version).
Some readers are chagrined at the use of assembly language, but Knuth considers this necessary because algorithms need a context to judge speed and memory usage.
Fortunately, there are free MIX emulators available for download.
Further information:
[Overview of topics] (Knuth's personal homepage)