Most Helpful Customer Reviews
|
|
172 of 192 people found the following review helpful:
3.0 out of 5 stars
A definitive guide, but not perfect, May 28, 2002
INTRODUCTION TO ALGORITHMS is pretty much the standard textbook in the field of algorithms. In its favor is the fact that it is quite comprehensive, covering a wide range of topics that the beginning student will need to know. On the other hand, it has a tendency towards the confusing and the obscure, with many of the example problems not making a lot of sense. If one decides to purchase this book (and the students will have no choice in this matter, being subject as they are to the whims of their professors), then I recommend that one immediately prints out the "bug correction" page available on the web, as there are several major howlers present in the book, and if one isn't careful then many hours will be lost while one checks and rechecks faulty pseudo-code. In one particularly confused portion of the book, the correction sheet completely replaces three entire pages of the text.This book covers a huge amount of material, and many of the topics are described quite adequately. Although readers may already be familiar with the numerous data structures that are discussed, the book doesn't assume prior knowledge and goes into quite a lot of detail concerning them. These sections, in particular, are illustrated clearly and offer great reference material that every programmer should have access to. This portion on data structures is one area where the book's conciseness is an advantage. It's simple enough for the beginner to learn from, but it contains more than enough information for the advanced user in need of mental refreshing. The opening sections that discuss the rudiments of algorithm analysis are also covered competently. The easier subjects don't suffer from the book's shortcomings, as these ideas aren't quite as difficult to understand. For a simple introduction to the easier-to-grasp concepts in Algorithms, these sections simply can't be bettered. It's not until later chapters that some of the material appears incomprehensible. Other parts of the book are very confusing to the beginning students who, presumably, make up the bulk of the target audience. If this text is used as an accompaniment to a class (as it usually is), then you'll probably do all right. One really needs to have some other source of information, because this book tends to get quite confusing. The problem sets included are frequently obscure, and don't always relate to the material in that chapter. The fact that many of the problems have no given solution (even if one attempts to contact the authors!) is quite telling. The style of the book is extremely dry and occasionally impenetrable, even when compared to other computer science textbooks. If you're looking at this page, then no doubt you're looking mainly for pricing information, since this book is the definitive standard on the subject. Keep in mind that "definitive" doesn't necessarily mean perfect, and, alas, this book is far from perfection. But if you have an alternative method of learning the material, then this is an excellent book to have as accompaniment. And once you've learned the material, you'll find this to be a great resource.
|
|
|
114 of 127 people found the following review helpful:
3.0 out of 5 stars
Academic Masterpiece, Practical White Elephant, September 5, 2005
First, the good part: this book is an intellectual and academic masterpiece. It would be great for people doing algorithm or other Computer Science research. It's an amazing synthesis of much of the core of a Computer Science degree with Discrete Math and Probability. Oddly, it's more like a math book than a CS book.
Now, the not so good part: for implementers (i.e., programmers), this book is not all that useful. The biggest technical negative is that, for the most part, the authors ignore memory hierarchies and treat everything as if it were running on a computer with infinite cache memory and having everything already loaded there. Granted, the authors spend a huge chunk of time teaching the readers how to do (and prove) cost (or efficiency) analysis on algorithms. So, readers should be able to figure out actual, real-world efficiencies on their own (although there's nothing in this book to illustrate how to modify the analysis to do that). But, since memory hierarchies drastically change the relative efficiencies of algorithms, they should be considered in the original algorithmic analysis and ranking.
From a methodology point of view, another problem is that the authors assume the readers have full knowledge of the algorithms covered in the book. In general, they don't even try to teach the actual algorithms, how they came about, the reasoning behind them, or any method of thought for coming up with other, similar, algorithms. Instead, the authors merely focus on proving the correctness and cost of the pre-existing algorithms. It's like the authors present a beautiful, theoretical, shiny structure sparkling and spinning in the ether. They then explain what parts make up this structure, how they're put together, and how long it takes to use such a structure. But, what would be far more useful is if the authors started from the more common position where someone has a problem and a big pile of parts. They need to know how to determine the best thing to make from all those parts to fix the problem, and how to put it together in the most efficient way. Essentially, it's the difference between a reference book and a teaching book.
On the level of irritations, the authors leave a LOT of core stuff as exercises for the student. This is bad enough on its own (and is one of my pet peeves in the math world). However, making this even worse is the fact that NONE of the exercises are answered. So, firstly, that makes these exercises useless to self-studyers (i.e., me). And, secondly, that makes the "proof is left as an exercise to the student" core parts of the book entirely inaccesible to self-studyers.
I can't emphasize enough that academically and intellectually, the scope and depth of this book is amazing. If I were someone doing pure research in computer science algorithms, I'd rate it at 5 stars out of 5. But, as a lowly nouveaux-programmer trying to improve my mind, the best I can give it is an OK 3 stars out of 5.
|
|
|
41 of 43 people found the following review helpful:
4.0 out of 5 stars
Great book with one major shortcoming, February 11, 2007
What it is:
A very thick text book about a) the mathematics behind algorithms, and b) a treasure chest of random performance tips.
Who it's for:
This book is for those who want or need to gain a decent grasp of the math for analyzing algorithms, and already have a decent understanding of discrete mathematics and probability.
What's good about it:
I really like this book. It's very high quality, well written, concise, and clear, and it's sprinkled with clever little tips to improve the efficiency of common routines.
Tips:
You can watch video recordings of the MIT lectures based on the book. Check out "6.046J Introduction to Algorithms" by searching for "ocw 6.046J" in your favorite search engine. The mathematical prerequisite course is also available in text form on MIT's OpenCourseWare; it can be found by searching for "ocw 6.042J spring 2005".
Warnings:
* Don't bother with this book unless you have a high aptitude for math
* Don't bother with this book unless you're prepared to work at it
* It's not designed as a reference book; instead it's a study book.
Many reviewers have called this book a "reference", but I have to disagree. A good reference book makes information quickly accessible, but this book would require you to read way too much to be called a reference. A practical reference book for algorithms is "The Algorithm Design Manual" by Steven S. Skiena, assuming you don't require proofs.
The Major Shortcoming!
Given that the book's design is most appropriate for learning things you don't already know, it has one major shortcoming: there are no answers to any of the exercises or problems. That makes the book semi-useless for self-study as well as for instructors who believe in the pedagogic value of students being able to check their answers. The instructor's manual is only available to instructors on the condition that they don't make the answers available.
|
|
|
Most Recent Customer Reviews
|