Most professional programmers that I've encountered are not well prepared to tacklealgorithmdesignproblems.Thisisapity, becausethetechniquesofalgorithm design form one of the core practical technologies of computer science. Designing correct, e?cient, and implementable algorithms for real-world problems requires access to two distinct bodies of knowledge: - Techniques - Good algorithm designers understand several fundamental - gorithm design techniques, including data structures, dynamic programming, depth-?rst search, backtracking, and heuristics. Perhaps the single most - portantdesigntechniqueismodeling, theartofabstractingamessyreal-world application into a clean problem suitable for algorithmic attack. - Resources - Good algorithm designers stand on the shoulders of giants. Ratherthanlaboringfromscratchtoproduceanewalgorithmforeverytask, they can ?gure out what is known about a particular problem. Rather than re-implementing popular algorithms from scratch, they seek existing imp- mentations to serve as a starting point. They are familiar with many classic algorithmic problems, which provide su?cient source material to model most any application. This book is intended as a manual on algorithm design, providing access to combinatorial algorithm technology for both students and computer professionals.
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 .