The Algorithm Design ManualMost 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 realworld 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,theartofabstractingamessyrealworld 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 reimplementing 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. 
What people are saying  Write a review
User ratings
5 stars 
 
4 stars 
 
3 stars 
 
2 stars 
 
1 star 

Excellent book for studying algorithms
User Review  asfhuvx  Overstock.comExcellent book if youre looking to keep in touch with what you studied in college. Not as big and bulky as the CLR but it still contains most of the important algorithms and design techniques. Good reference book to carry around. Read full review
User Review  Flag as inappropriate
This is the most amazing and helpful book I have ever read.
Other editions  View all
Common terms and phrases
adjacency lists algorithm design applications array backtracking breadthfirst search characters clique coloring combinatorial compute connected components constraints construct contains convex hull cost cycle data structure defined deletion depthfirst search directed graph discussed in Section dynamic programming edge efficient algorithm elements exactly example Figure function geometric given graph G Hamiltonian hash heuristic implementation independent set Input description INPUT OUTPUT insertion integer integer partitions intersection isomorphism kdtrees linear longest matrix maximum minimize minimum spanning tree node NPcomplete operations optimal pair partition permutations planar pointer polygon possible Prim’s priority queue Problem description Programming Challenges prove provides query quicksort random recursive reduction Related Problems represent root sequence set cover shortest path simulated annealing smallest solution solve sorting algorithm subgraph subset substring suffix tree topological sorting tour traversal triangle undirected vertex cover vertices Voronoi diagrams weight worstcase