The Art of Computer Programming - Vol 1: Fundamental Algorithms

by Donald E. Knuth

Hardcover, 1975



Call number


Library's review

Indeholder "Preface", "Preface to the Second Edition", "Procedure for Reading This Set of Books", "Notes on the Exercises", "Chapter 1. Basic Concepts", " 1.1. Algorithms", " 1.2. Mathematical Preliminaries", " 1.2.1. Mathematical Induction", " 1.2.2. Numbers, Powers, and Logarithms", " 1.2.3. Sums and Products", " 1.2.4. Integer Functions and Elementary Number Theory", " 1.2.5. Permutations and Factorials", " 1.2.6. Binomial Coefficients", " 1.2.7. Harmonic Numbers", " 1.2.8. Fibonacci Numbers", " 1.2.9. Generating Functions", " 1.2.10. Analysis of an Algorithm", " 1.2.11* Asymptotic Representations", "* The O-notation", "* Euler's summation formula", "* Some asymptotic calculations", " 1.3. MIX", " 1.3.1. Description of MIX", " 1.3.2. The MIX Assembly Language", " 1.3.3. Applications to Permutations", " 1.4. Some Fundamental Programming Techniques", " 1.4.1. Subroutines", " 1.4.2. Coroutines", " 1.4.3. Interpretive Routines", " A MIX simulator", "* Trace routines", " 1.4.4. Input and Output", " 1.4.5. History and Bibliography", "Chapter 2 Information Structures", " 2.1. Introduction", " 2.2. Linear Lists", " 2.2.1. Stacks, Queues, and Deques", " 2.2.2. Sequential Allocation", " 2.2.3. Linked Allocation", " 2.2.4. Circular Lists", " 2.2.5. Doubly Linked Lists", " 2 2.6. Arrays and Orthogonal Lists", " 2.3. Trees", " 2.3.1. Traversing Binary Trees", " 2.3.2. Binary Tree Representation of Trees", " 2.3.3. Other Representations of Trees", " 2.3.4. Basic Mathematical Properties of Trees", " Free trees", " Oriented trees", "* The "infinity lemma"", "* Enumeration of trees", " Path length", "* History and bibliography", " 2.3.5. Lists and Garbage Collection", " 2.4. Multilinked Structures", " 2.5. Dynamic Storage Allocation", " 2.6. History and Bibliography", "Answers to Exercises", "Appendix A. Index to Notations", "Appendix B. Tables of Numerical Quantities", " 1. Fundamental Constants (decimal)", " 2. Fundamental Constants (octal)", " 3. Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers", "Index and Glossary".

En total klassiker indenfor datalogi. Knuth viser vejen og vejen er ikke altid let, men det er Vejen!
… (more)


Addison-Wesley (1975), Hardcover


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   This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP),… (more)

User reviews

LibraryThing member JPB
If you program and you don't know this book, and its companion volumes 2 and 3, it's like saying you live in San Francisco and haven't seen the Golden Gate Bridge. The books are really much more valuable to someone with a knowledge of calculus, and some discrete mathematics. If you are looking for programming cookbooks, don't go here, but if you want to know why binary trees, stacks and queues are used, and who thought of their use first, and their history of development, then read these books.

The above is, of course, a gross simplification. You will also learn how to properly analyze an algorithm - how to design algorithms to compute arithmetic results to achieve the minimum amount of error, how to design a proper random number generator - how to choose the right datastructure for search operations, etc.. More to the point, you will gain the skills to answer such questions on your own.

And most of all, you will see, once again, that the very brightest people are humble and have a sense of humor. The places where this book made me laugh out loud are too numerous to count.
… (more)
LibraryThing member Lyndatrue
There aren't enough stars to rate this. My only regret (and it's a minor one) is that I don't have my old copies, which I gave to a friend when I bought the new and updated ones. The old ones fell open at certain pages, and this volume (and its two companions are new), and will never see the use of the others.

I see that there's a Volume 4A, but I'm not really sure that it makes sense for me to get it, at this stage in life.

Donald Knuth is one of my heroes.
… (more)
LibraryThing member appa
Difficult, instructive, intelligent, amusing and brain-numbing - all rolled-in-to-one in this classic of CS. Buy it, read a page at a sitting and savor it - this is a book read over 5 years.


Original language


Original publication date


Physical description

634 p.; 23.6 cm


0201038099 / 9780201038095

Local notes

Omslag: Indbundet
Indskannet omslag - N650U - 150 dpi
Side 1: Many persons who are not conversant with mathematical studies imagine that because the business of [Babbage's Analytical Engine] is to give its results in numerical notation, the nature of its processes must consequently be arithmetical and numerical, rather than algebraical and analytical. This is an error. The engine can arrange and combine its numerical quantities exactly as if they were letters or any other general symbols; and in fact it might bring out its results in algebraic notation, were provisions made accordingly. - Ada Augusta, Countess of Lovelace (1844)
Page: 0.4226 seconds