The Algorithm Design Manual

by Steven S. Skiena

On This Page

Description

"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." (Steve Yegge, Get that Job at Google) "Steven show more Skiena’s Algorithm Design Manual retains its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. … Every programmer should read this book, and anyone working in the field should keep it close to hand. … This is the best investment … a programmer or aspiring programmer can make." (Harold Thimbleby, Times Higher Education) "It is wonderful to open to a random spot and discover an interesting algorithm. This is the only textbook I felt compelled to bring with me out of my student days.... The color really adds a lot of energy to the new edition of the book!" (Cory Bart, University of Delaware) --- This newly expanded and updated third edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficiency. It serves as the primary textbook of choice for algorithm design courses and interview self-study, 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, Practical Algorithm Design, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, the Hitchhiker's Guide to Algorithms, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations, and an extensive bibliography. NEW to the third edition: -- New and expanded coverage of randomized algorithms, hashing, divide and conquer, approximation algorithms, and quantum computing -- Provides full online support for lecturers, including an improved website component with lecture slides and videos -- Full color illustrations and code instantly clarify difficult concepts -- Includes several new "war stories" relating experiences from real-world applications -- Over 100 new problems, including programming-challenge problems from LeetCode and Hackerrank. -- Provides up-to-date links leading to the best implementations available in C, C++, and Java Additional Learning Tools: -- Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, and the right path to solve them -- Exercises include "job interview problems" from major software companies -- Highlighted "take home lessons" emphasize essential concepts -- The "no theorem-proof" style provides a uniquely accessible and intuitive approach to a challenging subject -- Many algorithms are presented with actual code (written in C) -- Provides comprehensive references to both survey articles and the primary literature This substantially enhanced third edition of The Algorithm Design Manual is an essential learning tool for students and professionals needed a solid grounding in algorithms. Professor Skiena is also the author of the popular Springer texts, The Data Science Design Manual and Programming Challenges: The Programming Contest Training Manual. show less

Tags

Recommendations

Member Reviews

5 reviews
Skiena is incredible!

I'll be upfront that I'm a pragmatist as a programmer. I some actual training in data science and machine learning, which is arcane enough on it's own, and a few years experience to call myself Good With Pandas, but the thing about being an autodidact solving a limited set of business problems in Python is that you miss the big picture. In a mature ecosystem like Python, a lot of the time the right answer is just "pip install magiclib. from magiclib import incantation. bar = incantation(foo)" Except sometimes magiclib doesn't exist yet. At the end of the day, computers are all Turing machines, they all solve the same sets of problems, but some approaches are algorithmically tractable, and some will leave you lost in show more the Swamp of Sadness.

Artax has been asked to solve a large NP complete problem

For someone who's never taken CS101, this book an eye-opener into the hows and whys of basic data structures like linked lists, trees, hash tables, and arrays, as well as sorting techniques and more advanced practices like dynamic programming. Clear explainers are interspersed with practical war stories, where Skiena explains how he applied the technique just discussed to solve a previously intractable problem.

Cracking the Coding interview is a series of dog tricks. The Algorithm Design Manual is actual knowledge. It's been a great guide to actually thinking like a professional, even if most of the day job is data plumbing.
show less
A pretty good resource and one of the better books on the subject, in my opinion. However, many describe it as "introductory" algorithms, and I'm not sure I totally agree. Unless you already posses a solid foundation in related areas, a newbie will often find it hard to walk into this and immediately understand it. And maybe some will say that would be unrealistic, and I would be one of those. However, I actually have heard and seen others say exactly that, and again, I don't agree. Nonetheless, a pretty good book and solid resource. Recommended.
This book is showing its age -- although the algorithms are solid, I find it unlikely that the author would make it through a modern technical interview. Software engineering has evidently come a long way in 15 years.
http://www.cabochon.com/~stevey/blog-rants/ten-great-books.html
Entire book here: http://ranau.cs.ui.ac.id/book/AlgDesignManual/BOOK/BOOK/BOOK.HTM

Este libro se lee como una novela. Ábrelo y zambúllete en cualquiera de las "War stories". Si el pequeño schemer te enseña a pensar recursivo, este libro te enseña a formular tus problemas en términos de grafos.
1

Members

Recently Added By

Lists

Author Information

Picture of author.
6 Works 1,092 Members
Steven Skiena is Professor of Computer Science at the State University of New York at Stony Brook

Common Knowledge

Original publication date
1997
First words
Most professional programmers that I’ve encountered are not well prepared to
tackle algorithm design problems.
Original language
English

Classifications

Genres
Technology, Nonfiction, General Nonfiction
DDC/MDS
005.1Computer science, information & general worksComputer science, knowledge & systemsArtificial Intelligence/Virtual RealitySoftware development
LCC
QA76.9 .A43 .S55ScienceMathematicsMathematicsInstruments and machinesCalculating machinesElectronic computers. Computer science
BISAC

Statistics

Members
769
Popularity
36,420
Reviews
5
Rating
½ (4.44)
Languages
Chinese, English
Media
Paper, Ebook
ISBNs
10
UPCs
1
ASINs
5