About the Book
Most professional programmers are not
well equipped to tackle algorithm design problems.
The Algorithm Design Manual, written by Steven S. Skiena and
published by Telos/Springer-Verlag
is uniquely designed to provide access to combinatorial algorithms
technology for computer professionals and students.
This book is considerably different than other books on algorithms.
We reduce the design process to a sequence of questions to ask about
the problem at hand.
This provides a concrete path to take the non-expert from an initial problem
statement to a reasonable solution.
To provide a better perspective on how algorithm problems arise in the
real world, we include a collection of `war stories',
tales from our experience on real problems.
The moral of these stories is that algorithm design and analysis is not just
theory, but an important tool to be pulled out and used as needed.
Since the practical person is usually looking for a program more than an
we provide pointers to solid implementations whenever
they are available.
We have collected these implementations on an enclosed CD-ROM
and at the book WWW site,
for easy retrieval.
With these implementations available, the critical aspect in algorithm design
becomes properly modeling your
instead of becoming intimate with the details of the actual algorithm.
This focus permeates the entire book.
Since finding out what is known about an algorithmic problem can be a
difficult task, we provide a catalog of the 75 most
important algorithmic problems as
a major component of this book.
By browsing through this catalog, the reader can quickly identify what their
problem called, what is known about it, and how
they should proceed to solve it.
As an aid in problem identification, we include a pair of `before' and `after'
pictures for each problem,
illustrating the required input and output specifications.
The algorithm catalog spans numerical problems and data structures
as well as graph, string, and geometric algorithms.
For each problem in the catalog, we provide an honest and convincing
motivation showing how it arises in applications.
If we could not find such an application, then the problem doesn't appear
in this book.
Equally important is what we do not do in this book.
We do not stress the mathematical analysis of algorithms, leaving most
of the analysis as informal arguments.
You will not find a single theorem anywhere in this book.
But what is a manual without software?
This book comes with a substantial electronic supplement,
a ISO-9660 compatible,
multiplatform CD-ROM, which can be viewed using Netscape, Microsoft
Explorer, or any other WWW browser.
This CD-ROM contains:
A complete hypertext version of the full printed book.
Indeed, the extensive cross-references within the text are best followed
using the hypertext version.
The source code and URLs for all cited implementations, mirroring
the Algorithm Repository WWW site.
Programs in C, C++, Fortran, and Pascal are included, providing an average
of four different implementations for each algorithmic problem.
Over 30 hours of audio lectures on the design and analysis
of algorithms are provided, all keyed to on-line lecture notes.
Following these lectures provides another approach to learning
algorithm design techniques.
Together, this book covers material sufficient for a standard
Introduction to Algorithms
Its assumes the reader has completed the equivalent of
a second programming course,
Computer Science II
Special textbook oriented-features include:
In addition to standard pen-and-paper exercises, this book
includes ``implementation challenges'' suitable for teams or individual
These projects and the applied focus of the text can be used
to provide a new laboratory focus to the traditional algorithms course.
``Take-home lessons'' at the beginning of each chapter emphasize the
concepts to be gained from the chapter.
This book stresses design over analysis.
It is suitable for both traditional lecture courses, and the
new ``active learning'' method, where the professor does not lecture
instead guides student groups to solve real problems.
The ``war stories'' provide a great introduction to the active learning
A full set of lecture slides
for teaching this course is available on the CD-ROM,
keyed to unique on-line audio lectures covering a full semester
``I have no doubt that it will become a classic the day it is published.
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.
``A major theme that runs through the book is that the most important
technique to solve an algorithmic problem from the real world is to learn how
to model the problem well.
I did not believe this before; the book did an admirable job of convincing
me that there is considerable truth in it.''
-- Giri Narasimhan,
The University of Memphis.
``The questions on problem solving are good enough that they ought
to be talked about in every programming class in the undergraduate
-- Ron Danielson, Santa Clara University.
Check out the
table of contents
for more information.
this book, and are encouraged to do so.
You might also be interested in my previous book,
Implementing Discrete Mathematics
Please leave your name and address to receive additional information about
the book and
notification of significant upgrades to this site
when they occur.
If your WWW client does not support forms, please send an e-mail to
with your name, e-mail address,
and mailing address for further information.
Return to the home page
If you have problems with this page, please send E-mail to: