The first revision of this third volume is the most comprehensivesurvey of classical computer techniques for sorting and searching. It extends thetreatment of data structures in Volume 1 to consider both large and smalldatabases and internal and external memories. The book contains a selection ofcarefully checked computer methods, with a quantitative analysis of theireffic The first revision of this third volume is the most comprehensivesurvey of classical computer techniques for sorting and searching. It extends thetreatment of data structures in Volume 1 to consider both large and smalldatabases and internal and external memories. The book contains a selection ofcarefully checked computer methods, with a quantitative analysis of theirefficiency. Outstanding features of the second edition include a revised sectionon optimum sorting and new discussions of the theory of permutations and ofuniversal hashing.

# The Art of Computer Programming, Volume 1: Fundamental Algorithms

The first revision of this third volume is the most comprehensivesurvey of classical computer techniques for sorting and searching. It extends thetreatment of data structures in Volume 1 to consider both large and smalldatabases and internal and external memories. The book contains a selection ofcarefully checked computer methods, with a quantitative analysis of theireffic The first revision of this third volume is the most comprehensivesurvey of classical computer techniques for sorting and searching. It extends thetreatment of data structures in Volume 1 to consider both large and smalldatabases and internal and external memories. The book contains a selection ofcarefully checked computer methods, with a quantitative analysis of theirefficiency. Outstanding features of the second edition include a revised sectionon optimum sorting and new discussions of the theory of permutations and ofuniversal hashing.

Compare

4out of 5David–At first, I enjoyed this dense and scholarly volume. Knuth's dry humor is peppered throughout the book, but pops up most frequently in the first few chapters. It seemed at odds with the negative (and adoring) opinions I'd read about the book. I was told (by Knuth in his introduction) that I could skip as much of the math as I liked. So I dutifully skimmed through the math chapter and continued. Then I hit MIX. It's the theoretical computer to which all of the program examples in the book will be w At first, I enjoyed this dense and scholarly volume. Knuth's dry humor is peppered throughout the book, but pops up most frequently in the first few chapters. It seemed at odds with the negative (and adoring) opinions I'd read about the book. I was told (by Knuth in his introduction) that I could skip as much of the math as I liked. So I dutifully skimmed through the math chapter and continued. Then I hit MIX. It's the theoretical computer to which all of the program examples in the book will be written - in assembly language. It's interesting and clever and...awful. Please understand that I have read Knuth's defenses for using assembly language to teach his algorithms. I understand them. And they make sense. But now that I've slogged through this first volume, I can say with certainty that I hate MIX and I hate learning algorithms from MIX examples. "We hates it, we hates it, we hates it forever!" as Gollum would say. Is it important to understand how a linked list works in memory? Absolutely. Does worrying about the housekeeping of a fictional computer designed in the 1960s aid in that understanding? Absolutely not. Knuth admits that MIX is outdated and he's working on MMIX, which will be a much nicer RISC design. Certainly that would be an improvement. But I still feel a higher-level language (or a formaly-defined pseudocode) could show all of the lower-level concepts without the drudgery of assembly. Let's move on from the assembly example issues and talk about the content of Volume One. For all of the words and symbols, very little ground is actually covered! By the end of Volume One, you'll only have learned about lists (stacks, queues, deques, etc.) and basic trees. Which is not to say those aren't fruitful structures ripe for thorough examination - certainly they are, and Knuth examines them thoroughly. It's just to say that the pace is utterly glacial. In other words, and it pains me very much to say this, it's difficult to justify the time required to get through a book like this if you don't enjoy the MIX assembly puzzles or the higher math problems. I appreciate this incredibly thorough and accurate work the way I appreciate models of large gothic structures created with toothpicks. But while the toothpick model can be enjoyed at a glance as a piece of visual art, The Art of Computer Programming can only be appreciated with careful study. It's really quite difficult to put a star review on a single volume of a (some day) five-volume set of astoundingly thorough scholarship. In some ways, I don't even feel worthy of reviewing the thing. In the end, all I can do is rate the enjoyment and/or personal value of the knowledge I gained from the book. I'll be perfectly honest, the only "useful" (using an extremely loose interpretation of that word) thing I actually remember from Volume One is how to use a pair of stacks to efficiently simulate a FIFO queue. That's a pitiful statement considering the amount of time I put into reading the thing. I own the three-volume set (published before Volume 4A came out). My understanding is that the books get more interesting later on. The titles do sound interesting. But I can't get past the fact that they're going to be chock full of more MIX examples and exercises in higher math. It's going to be a while before I work up the stamina to crack the next one open.

5out of 5Charles–oh, who am i kidding? i have never read this straight through, but i think i've covered a lot of it over the course of 8 years as an engineer. if i was stranded on a desert island with enough food and water to last the rest of my life, this series of books is what i would take with me. there are so many puzzles in these books that it could keep you occupied for a lifetime. i don't know how one man wrote these books.

4out of 5Hackman–I really cant understand how one could write code without reading these books.

4out of 5Warren Mcpherson–This book outlines the design of computers and shows how many of the challenges of programming development have been addressed. It is a great and foundational computer science book. Today, understanding the operation of the processor is less critical and the way data structures are used has somewhat evolved. The math and assembly programs gave critical insight into practice and optimization at one time, however are less relevant now. Programmers who read it will still love this book. It was a nic This book outlines the design of computers and shows how many of the challenges of programming development have been addressed. It is a great and foundational computer science book. Today, understanding the operation of the processor is less critical and the way data structures are used has somewhat evolved. The math and assembly programs gave critical insight into practice and optimization at one time, however are less relevant now. Programmers who read it will still love this book. It was a nice validation to find the logic I had used once in a short program in one of the examples. It is striking how far the practice has come.

4out of 5Michal Paszkiewicz–An excellent learning resource for anyone with an interest in computers or mathematics. Not exactly a light read, but it provides a great set of tools that can be applied to many situations. The problem sets were concise, interesting and a far better substitute to doing sudokus on the morning commute. I tried to work through all the problems rated 25 or less, while glancing at the more complex/time consuming ones, but I sometimes lacked the skills to complete a problem. I would like to revisit t An excellent learning resource for anyone with an interest in computers or mathematics. Not exactly a light read, but it provides a great set of tools that can be applied to many situations. The problem sets were concise, interesting and a far better substitute to doing sudokus on the morning commute. I tried to work through all the problems rated 25 or less, while glancing at the more complex/time consuming ones, but I sometimes lacked the skills to complete a problem. I would like to revisit this book after reading a few of the suggested books in the bibliography.

4out of 5Anubhav–It is one of the best books which makes me love Computer Science. It is simple and fascinating, and every chapter marks a new milestone...

5out of 5Gregory Blake–Donald E. Knuth's The Art of Computer Programming provides a detailed textbook for classical Computer Science, starting with the foundational mathematics and working through (in this volume) data structures such as Linked Lists, Trees, and Graphs. While authoritative and enjoyable to read, I personally felt unprepared (even with advance warning) for the sheer volume of mathematics in Chapter 1, and spent the first 120 pages reeling from notations that I hadn't read before. After the "Introductory Donald E. Knuth's The Art of Computer Programming provides a detailed textbook for classical Computer Science, starting with the foundational mathematics and working through (in this volume) data structures such as Linked Lists, Trees, and Graphs. While authoritative and enjoyable to read, I personally felt unprepared (even with advance warning) for the sheer volume of mathematics in Chapter 1, and spent the first 120 pages reeling from notations that I hadn't read before. After the "Introductory Mathematics", the book returned to more familiar ground detailing out algorithms, and (less important to the modern reader) how they might be implemented in a prototypal assembly language. I skipped over several types of content this book provided, firstly, the assembly implementations (because the lowest language I work in happens to be C, still a level up from Assembly), secondly, the exercises (which would have taken me until early next year, judging by the sheer amount), and thirdly, the parts of Knuth's proofs that made my eyes bleed. Overall, Knuth's writing voice is authoritative, friendly, and at times humorous. It's rare to find a Computer Science professor as enjoyable to read. Unfortunately, most notable algorithms covered in the book are also covered in other Computer Science manuals that you've probably read if you're readying yourself to joust this particular windmill. I'd recommend Volume 1. It certainly didn't scare me away from Volume 2.

5out of 5Antti Karanta–This book was somewhat of a mixed blessing. I really enjoyed the mathematical exactness and thoroughness. However, I did not at all like the decision to have the sample code in a made-up assembly language. That made the programs utterly unreadable. Maybe I'm just not HC geek enough, but IMO when the point is to present algorithms, the sample code should be clear and easy to read. Using a higher level language would have been more appropriate. Also, it would have been nice to have had flow graphs This book was somewhat of a mixed blessing. I really enjoyed the mathematical exactness and thoroughness. However, I did not at all like the decision to have the sample code in a made-up assembly language. That made the programs utterly unreadable. Maybe I'm just not HC geek enough, but IMO when the point is to present algorithms, the sample code should be clear and easy to read. Using a higher level language would have been more appropriate. Also, it would have been nice to have had flow graphs of all the presented algorithms instead of just a few of them. I also have to admit that this book was such heavy reading that at the end I began to read more marginally and skip some paragraphs, getting just an overview of certain subjects.

4out of 5Parnell–Incredible resource for a self-taught programmer! I love the depth and precision of Knuth's mind and exposition. MIX, while old in design, is more than sufficient and can easily be replaced by the enterprising user with a modern tool. Doing all of the exercises is a tall order but I did do the majority of the "light" ones and a good number of the difficult problems. I highly recommend Don's books.

4out of 5Bence–Amazing monograph on computer science, very didactically written. With well-thought structure and great excercises, it is perfectly suitable as a textbook for two full courses, as well as a textbook for independent study. The excercises themselves, especially from the first chapter, provide great entertainment for the so inclined reader, in many areas of mathematics.

4out of 5Ian Carmichael–More elegant science writing - one of the deep, foundational thinkers in Computer Science. Packed with insight, rigour, and interesting mathematical puzzles (I love mathematics, but usually I find mathematical puzzles very uninteresting.) And a ditto goes to Volumes 2 and 3.

5out of 5Taneli–This is a fantastic piece of literature for computer science. It is however, not an introductory book, so the reader must know quite a lot of mathematics and abstract computer programming to get the most out of this book. Even though it is quite old, it is still relevant in many ways.

5out of 5Darrell Ulm–Essential reading for study of algorithms.

5out of 5Greg–Knuth wrote this book for people who already know almost everything it tries to teach you. Sections move from easy to understand to immensely complex in a sentence or two. Finishing it is more of a badge of honor than an actual learning experience. Combine the fast pace with the outdated MIX computer, and the relevancy of this book to modern programmers is minimal. I still did learn some cool things, but it could have been a lot better.

5out of 5Sethborder–Quite incredible. Took me a very long time to finish, but was absolutely worth it. Truly the gold standard for algorithm analysis.

4out of 5Robert Fishell–The foundation of modern computer science distilled into a single volume. The Knuth books are essential references for anyone serious about the field.

4out of 5MBybee–A classic and a gem.

4out of 5NONATION–the art is fantastic i nedd art in my life

5out of 5Mikael OnsjÃ¶–Although well written and thorough with some delicious humor, this did not meet up to my expectations. I did learn a few things about this and that (not the least tree traversals) but much space was wasted on superfluous detail. For instance I did not care squat for the MIX assembly language code examples that took up page after page. Personally I'm very interested in math, but there was also a disconnect between the chapters on background theory and the later ones on algorithms.

4out of 5Sven Meys–It's a nice refresher for some essential math skills. Besides that it contains good info basic data structures. Too much detail for me personally. But when a problem arises that requires such detail, I will have the solution right there on my bookshelf. :) On to volume two! Yay!

5out of 5Jakub–Reading this book once is not enough. It's an amazing piece that everyone should read, or at least skim through. There are so great tips and insights I've never seen elsewhere, and reading the whole thing just opens up your mind to a lot of things.

5out of 5Kelly–I thought this would be more informative and instructive from a beginners, or at least intermediate point of understanding, but it was like trying to read med papers if you haven't gone to med school.

4out of 5Topilno–Creating Web Pages for Dummies

5out of 5Takanori–https://www.goodreads.com/book/show/1...#

4out of 5TK Keanini–Very helpful book but I personally don't care for the style of the book.

5out of 5Kevin Watkins–Obviously a classic but a really hard read due to everything being written in MIX - would much prefer pseudo-code.

4out of 5Richard Schave–the Art of Computer Programming, Volume 1: Fundamental Algorithms by Donald E. Knuth (1979)

4out of 5Dwight Walker–Classic on algorithm design in computer science.

4out of 5Arun Rajappa–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.

4out of 5Grigori–He's crazy. He's brilliant. If you are a programmer - read it.