Review
------
Many people get a feeling of satisfaction when they solve a difficult problem, but computer scientists get
excited when they solve the problem of how to get a computer to solve the problem. It is more exciting - when it is done
properly - because now the computer can solve every variation of a problem, not just one version of it. Finding the
fastest route from your home to your holiday in Wales might be satisfying, but a computer scientist would want to know
how to find the best route from anywhere to anywhere. If you were a professional programmer trying to earn a living, you
would want to do even better: programme the computer to find the best way of finding a route (fastest, smallest, most
accurate, suitable for wide loads, avoiding speed cameras ...) so that your idea is better than anything else on the
market. The core of computer science is thus algorithms, the problem-solving part of programming. 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. For those who are new to the book, its main remains to provide a comprehensive catalogue of algorithms and
background resources. It covers a very wide range - from the standard sorting and searching, string, geometric and
dynamic programming to the more unusual such as approximation. Skiena covers this varied field with a mix of humour and
wisdom, and he provides an excellent array of references, online code and other resources for everything he touches on.
The comprehensive design manual itself, which comprises half of the book, has been renamed "The hitchhiker's guide to
algorithms". The rest of the volume might well have been called "Don't panic", for it is full of well-organised ins
and stories that make it a very enjoyable read whether one is learning for the first time, teaching from the text or
coming to the book as a professional with a problem to sort out. Throughout, the emphasis is on good problem modelling,
which is essential to get an algorithm to work. While computers have speeded up enormously in the past ten years - and
expensive supercomputers can speed things even more - a bit of thought might speed up a program by much higher factors
(or you can avoid thinking altogether by stealing one of the tried-and-trusted algorithms in the guide). One of Skiena's
"war stories" tells of making a program run 30,000 times faster by using a better-designed algorithm. Every programmer
should read this book, and anyone working in the field should keep it close to hand - The Algorithm Design Manual is not
just for use on university courses. With its aid, most programmers could go from writing code that merely works to
writing code that is thousands of times more efficient and reliable: this book will earn some people fortunes. Who is it
for? Anyone who programmes. Presentation: Perfect to read or as a reference. Would I recommend it? Absolutely. This is
the best investment of £35 a programmer or aspiring programmer can make. --Harold Thimbleby, Future Interaction
Technology Laboratory at Swansea University, Wales; Royal Society-Leverhulme Trust senior research fellow; Time Higher
Education 27 November 2008
Synopsis
--------
This expanded and updated second edition of a classic bestseller continues to take the "mystery" out of
designing and analyzing algorithms and their efficacy and efficiency. Expanding on the highly successful formula of the
first edition, the book now serves as the primary textbook of choice for any algorithm design course while maintaining
its status as the premier practical reference guide to algorithms.This book incorporates twice the tutorial material and
exercises. It provides full online support for lecturers, and a completely updated and improved website component with
lecture slides, audio and video. It contains a highly unique catalog of the 75 most important algorithmic problems. It
includes new "war stories" and "interview problems", relating experiences from real-world applications. Written by a
well-known, IEEE Computer Science teaching-award winner, this new edition is an essential learning tool for students
needing a solid grounding in algorithms, as well as a uniquely comprehensive text/reference for 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 inful guide.
Professor Skiena is also author of the popular Springer text, Programming Challenges: The Programming Contest Training
Manual.
About the Author
----------------
Steven Skiena is Professor of Computer Science at Stony Brook University. His research interests include the
design of graph, string, and geometric algorithms, and their applications (particularly to biology). He is the author of
four books, including "The Algorithm Design Manual" and "Calculated Bets: Computers, Gambling, and Mathematical Modeling
to Win". He is recipient of the ONR Young Investigator Award and the IEEE Computer Science and Engineering Undergraduate
Teaching Award.