This volume helps take some of the "mystery" out of identifying and dealing with key algorithms. Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide.
THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.
Customer Reviews:
Customer Rating: Summary: Absolutely great algoriths textbook and reference. Comment: This is a unique book, about 2/3 of the way from textbook to reference manual. It is very well written. It assumes competentcy in the analysis of algorithms and reviews a wide range algorithmic techniques. Many extensions are outlined as exercises. An unusual and interesting feature is the many "war stories" about the use of algorithms in the real world. Skiena does not shy away from stating what he thinks are good approaches - and otherwise. I am the proud owner of a couple dozen algorithms books, and this is probably the most useful of the bunch. Customer Rating: Summary: Great book Comment: This book is splitted in two parts.
The first part mostly contains general advices about algorithms, performances, and such.
The second part is more like a huge catalogue of "classical" problems and algorithms related to those, with advices about how to work them. It does not contain algorithms or pseudo-code (or very little), but is more about how to address the problem (and also contains pointers to an implementation). Customer Rating: Summary: Accessible Guide to Algorithm Design Comment: For those computer science students and programmers who are put off by the style of "Introduction to Algorithms" by Cormen et al., this book is a good alternative. Rather than just being a catalog of algorithms with code and little explanation, this book covers a much needed middle ground and contains a good deal about the analysis and design of algorithms in general along with discussions of common algorithms themselves in an accessible style. In fact, the author makes a point of mentioning in his preface that you will not find a single theorem in this book, and that the purpose of his book is to get working programmers up to speed quickly on both the generalities and specifics of algorithm design.
The first part of the book is on techniques, and covers the basics of modeling algorithms along with "Big Oh" notation, data structures and sorting, dynamic programming, graph algorithms, combinational search, and the concept of intractibility. What makes this section of the book particularly interesting are the author's "war stories" that talk about real world applications of the ideas discussed in each chapter.
Part two of the book, "Resources", is an extensive catalog of algorithmic problems organized by type. For each problem mentioned, the book includes a problem description and discussion, possible implementations, and other algorithmic problems that are related to this one. In the implementation section for each algorithm, the author demonstrates the kinds of questions that the reader should ask when designing his or her own implementation. The C, C++, Fortran, and Pascal code for all algorithm implementations mentioned is on the accompanying CD rather than in the book itself, which helps make the book more compact.
This book is a very good introduction to the methods of algorithm analysis and design, and an encyclopedic reference on many different types of algorithms. Highly recommended. Customer Rating: Summary: extremely practical, very good as a starting point in algorithms study Comment: I found this book extremely practical, especially for professionals that don't have everyday the occasion to be confronted with real algorithmic problems (I assume that most of the industry-related software programmers / designers / analysts are in this category), thus beeing in need to have a reference at hand "just in case" :-).
Together with "Programming challenges" also from Skiena & co. constitutes a powerful known algorithms references, and supplied with some natural problem-solving talent, could be a succesfull preparation for something like ACM contests or topcoders.com Customer Rating: Summary: For the real programmer Comment: There are many reasons I like this book more than other Algorithms books I own (e.g. Sedgewick). One is that Skiena's book comes with an HTML version, so it's easy to keep it with you at all times (e.g. on your laptop, at work, and at home). Another is the "war stories". I found that I wanted to read the war stories first, rather than the technical content. Another is that the book points you at existing implementations, which really is what you'll eventually need to look at if you're going to use or write any code.
Overall, I found that when confronted to real world problems, the "Algorithm Design Manual" was a better resource than other Algorithm books. This is why I'm recommending it to software engineers out there. It seems to be written for people working with algorithms to solve problems, rather than as a support for an academic course.
On the negative side: I find the resource catalog to be exhaustive but somewhat shallow. As I'm getting older and slower, some things are not as obvious as they used to be. For example, I was quite unable to derive how to use Voronoi diagrams to perform nearest neighbour search, although it is supposed to be "a simple matter".