- Hardcover: 730 pages
- Publisher: Springer; 2nd edition (July 26, 2008)
- Language: English
- ISBN-10: 1848000693
- ISBN-13: 978-1848000698
- Product Dimensions: 9.3 x 7 x 1.4 inches
- Shipping Weight: 3.6 pounds (View shipping rates and policies)
- Average Customer Review: 4.3 out of 5 stars See all reviews (134 customer reviews)
- Amazon Best Sellers Rank: #11,890 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Algorithm Design Manual 2nd Edition
Use the Amazon App to scan ISBNs and compare prices.
See the Best Books of the Month
Want to know our Editors' picks for the best books of the month? Browse Best Books of the Month, featuring our favorite new books in more than a dozen categories.
Frequently bought together
Customers who bought this item also bought
From the reviews of the second edition:
“This is detailed and timeless book that I keep reaching for. A useful book that I can not keep access to long enough. It is a important book to have in your library. Unlike other algorithm books that I have the algorithms are written independent of any programming language.” (Mary Anne, Cats and Dogs with Data, maryannedata.com, April, 2014)
“The Algorithm Design Manual by Steven Skiena is aimed at two groups of people: students and professionals. … It is written in an informal style that I found pleasant and engaging. … The book’s unique structure makes it more likely to be immediately useful to the practitioner who has problem to solve and wants to quickly make progress … . the book succeeds admirably. … would be helpful to the student who has never seen this material before. … Overall, I recommend this book warmly.” (Neelakantan Kartha, The Book Review Column, 2011)
“Algorithms are the very heart of computing … . This book is about right for most people. … Each of the topics is treated in a readable informal style with lots of asides and accounts of personal experiences - ‘war stories’ in implementing algorithms. … If you want to use it as a course textbook then there are lots of exercises at the end of every chapter. Highly recommended.” (Mike James, I Programmer, September, 2009)
"Addressing the main difficulties of solving problems, this book goes far beyond the design of algorithms. It is essential for scientists, engineers, and any professionals who aim to solve problems, with a noticeable emphasis on real problems. It will not only serve as a valuable undergraduate textbook, but it will also become an irreplaceable reference guide for most professionals in the area." (Carlos Linares Lopez, Computing Reviews, February, 2009)
"Skiena focuses on the practical aspects of algorithm design and use. … this work fills an important gap in the knowledge of CS practitioners and students. … this book is suitable as a text for an undergraduate algorithms class, but also as an invaluable reference for the practicing programmer. … This second edition has updated the bibliography to include recent works, making it an extensive bibliography. The index is also thorough and very useful for finding specific problems." (William Fahle, ACM Computing Reviews, December, 2008)
"For a decade, Steven Skiena’s Algorithm Design Manual retained its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. It is now available in an improved second edition that is worth buying simply for the updates. … Every programmer should read this book, and anyone working in the field should keep it close to hand. … Would I recommend it? Absolutely. This is the best investment … a programmer or aspiring programmer can make." (Harold Thimbleby, Times Higher Education, November, 2008)
"My absolute favorite for this kind of interview preparation is Steven Skiena’s The Algorithm Design Manual. More than any other book it helped me understand just how astonishingly commonplace … graph problems are -- they should be part of every working programmer’s toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. … every 1 – pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types." (Steve Yegge, Steve Yegge’s Blog, March, 2008)
"...the book is an algorithm implementation treasure trove, and putting all of these implementations in one place was no small feat. The list of implementations, an extensive bibliography … make the book an invaluable resource for everyone interested in the subject." (ACM Computing Reviews)
From the Back Cover
....The most comprehensive guide to designing practical and efficient algorithms!....
The Algorithm Design Manual, Second Edition
"...the book is an algorithm-implementation treasure trove, and putting all of these implementations in one place was no small feat. The list of implementations [and] extensive bibliography make the book an invaluable resource for everyone interested in the subject." --ACM Computing Reviews
"It has all the right ingredients: rich contents, friendly, personal language, subtle humor, the right references, and a plethora of pointers to resources." -- P. Takis Metaxas, Wellesley College
"This is the most approachable book on algorithms I have." -- Megan Squire, Elon University, USA
This newly expanded and updated second edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficacy and efficiency. Expanding on the first edition, the book now serves as the primary textbook of choice for algorithm design courses while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students.
The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, Resources, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations and an extensive bibliography.
NEW to the second edition:
• Doubles the tutorial material and exercises over the first edition
• Provides full online support for lecturers, and a completely updated and improved website component with lecture slides, audio and video
• Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, leading the reader down the right path to solve them
• Includes several NEW "war stories" relating experiences from real-world applications
• Provides up-to-date links leading to the very best algorithm implementations available in C, C++, and Java
ADDITIONAL Learning Tools:
• Exercises include "job interview problems" from major software companies
• Highlighted take-home lesson boxes emphasize essential concepts
• Provides comprehensive references to both survey articles and the primary literature
• Exercises point to relevant programming contest challenge problems
• Many algorithms presented with actual code (written in C) as well as pseudo-code
• A full set of lecture slides and additional material available at www.algorist.com
Written by a well-known algorithms researcher who received the IEEE Computer Science and Engineering Teaching Award, this new edition of The Algorithm Design Manual is an essential learning tool for students needing a solid grounding in algorithms, as well as a special text/reference for professionals who need an authoritative and insightful guide. Professor Skiena is also author of the popular Springer text, Programming Challenges: The Programming Contest Training Manual.
Browse award-winning titles. See more
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
As an example, older calculators always started "high" when finding quadratic factors or square roots. Skiena (p. 134) shows that three possible "front ends" can make subsequent iteration (trial and error until you're done) faster and more efficient: 1. The older always start high method 2. A common bisection technique-- split the problem, then, by "divide and conquer" go higher or lower and 3. Use interpolation to get closer sooner, then iterate.
The book is set up both as a self study and year long course text, but frankly the presentation is far from academic and much more rubber hits the road practical, realistic, design. The background is given with pseudocode, then the basic level of math needed to get the job done without pages of theory and proofs of Big Oh efficiency, etc.
Since 2008, the next edition in 2010, and this 2012 "printing corrections" edition (not considered a true edition, but contains many detailed corrections), this book has found a great audience in interview prep, because the author takes such a real world approach to solutions. Make sure you get the corrected edition if you buy from an Amazon third party vendor, you will if you get it directly from Amazon.
Highly recommended for all levels of programmers. The index also has been updated, and some of the previous reviews pointing out errors corrected, making this an outstanding reference. As if 700 pages weren't enough, the author also provides 19 sections of practical reviews of online resources and a detailed 43 page very current bib. If you're looking for a difficult to find "vein" of info (say, for example, on CAS algos), you'll find a wealth of info in these sections. Many volumes call themselves cookbooks, this really IS the best of that genre. If you can afford only one algo book, and want to use it without a tutor, teacher or coach, this is the one. Don't take that to mean it's simple-- it's just as deep as the academic texts, but simply removes all the math you don't use every day anyway. It's really more for programmers than researchers, but researchers would still learn a lot about how practical algo writers frame problems.
Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
The other major gripe I had is with the code examples. Most variables and method parameters are named a, k, c .. etc. For instance here is a method header in the backtracking section: construct_candidates(int a, int k, int n, int c, int *ncandidates)
This makes the code very hard to read and follow as well when you are a lines deep in a method trying to figure out what
k[i] - c + a is. It has been my experience that most math/engineer types and professors tend to write code this way vs giving things descriptive names so the code is easily understandable. The book would be 10X more valuable had the code samples been clearer. I ended up sending it back.
The chapters neatly describes practical use case of the various algorithms before diving into the actual algorithm. Authors view of Heuristic methods seems to me a bit odd. War Story are a nice addition to the book. I would recommend trying to solve the war story yourself before reading how author was able to solve it.
The real treasure is the catalog of algorithms. Again, in each of these individual algorithm problem, emphasis is on practical use case. Although, no algorithm in the catalog is described in detail, it gives pointer to many resources where you can look at for the details of the algorithm.
This book can very much work as a reference book for algorithms.
It also has nice recommendations for book on specific set of algorithms.
Most Recent Customer Reviews
I'll update this review as i continue to work through it.