First the pros: in terms of coverage, this book gives a good introduction to, and listing of, algorithms. The catalog that makes up the second half looks like an extremely useful reference (although I haven't had a chance to use it as such as I've only finished the book). The "War Stories" (sample real-world problems that the author has had to solve presented in a chatty style) are a good idea.
Now, the cons. I believe it really falls down on presentation.
1. Often poor explanations. I often found myself rereading lines/paragraphs over & over to try to get the meaning. Then going to wikipedia where the particular issue was clearly & concisely explained. The most cursory proofreading by a student could have easily pointed out the missing word/line that would have clarified the text. Also, the structure is out of order - sometimes reference is made to terms that are not explained until later in the text.
2. Mistakes. The book is full of mistakes. Typos, grammar, but worst of all - and this is unforgivable - code errors. I spent hours looking at one code solution wondering why I couldnt understand it. I finally suspected the problem was not with me & subsequently found this list of errata on the web: [...]. If you do buy this book I strongly urge you to check if your revision has these errors and, if so, correct them before you start reading. I cannot understand how this book got to a second edition (and God knows how many revisions) without correcting these errors. Some of them are crucial - code won't work with them. Even the word "not" is in one line when it shouldn't be!! This is unbelievably sloppy. Has noone actually proofread this book at all?
Its a shame the presentation is so poor. If I spent an hour or two with the author after reading it, I believe I could help him to substantially improve it in terms of presentation. With better presentation, I believe it would be a very worthwhile read.