- Shopping Bag ( 0 items )
Ships from: Woodinville, WA
Usually ships in 1-2 business days
Ships from: Los Angeles, CA
Usually ships in 1-2 business days
Based on a new classification of algorithm design techniques and a clear delineation of analysis methods, Introduction to the Design and Analysis of Algorithms presents the subject in a truly innovative manner. Written in a reader-friendly style, the book encourages broad problem-solving skills while thoroughly covering the material required for introductory algorithms. The author emphasizes conceptual understanding before the introduction of the formal treatment of each technique. Popular puzzles are used to motivate readers' interest and strengthen their skills in algorithmic problem solving. Other enhancement features include chapter summaries, hints to the exercises, and a solution manual. For those interested in learning more about algorithms.
The notion of algorithm.
Fundamentals of algorithmic problem solving.
Important problem types.
Fundamental data structures.
2. Fundamentals of the Analysis of Algorithm Efficiency.
Asymptotic notations and standard efficiency classes.
Mathematical analysis of nonrecursive algorithms.
Mathematical analysis of recursive algorithms.
Example: Fibonacci numbers.
Empirical analysis of algorithms.
3. Brute Force.
Selection sort and bubble sort.
Sequential search and brute-force string matching.
The closest-pair and convex-hull problems by brute force.
Binary tree traversals and related properties.
Multiplication of large integers and Strassen's matrix multiplication.
Closest-pair and convex-hull problems by divide-and-conquer.
Depth-first search and breadth-first search.
Algorithms for generating combinatorial objects.
Balanced search trees.
Heaps and heapsort.
Horner's rule and binaryexponentiation.
7. Space and Time Tradeoffs.
Sorting by counting.
Horspool's and Boyer-Moore algorithms for string matching.
8. Dynamic Programming.
Computing a binomial coefficient.
Warshall's and Floyd's algorithms.
Optimal binary search trees.
The knapsack problem and memory functions.
9. Greedy Technique.
10. Limitations of Algorithm Power.
P, NP, and NP-complete problems.
Challenges of numerical algorithms.
11. Coping with the Limitations of Algorithm Power.
Approximation algorithms for NP-hard problems.
Algorithms for solving nonlinear equations.
Appendix A: Useful Formulas for the Analysis of Algorithms.
Appendix B: Short Tutorial on Recurrence Relations.
Hints to Exercises.
Posted June 4, 2003
The definitive books on algorithms are widely acknowledged to be those by Donald Knuth, 'The Art of Computer Programming'. Very detailed, and with voluminous problem sets, they have been the standard for decades. Along comes this book with its claim of a different and complementary classification of the field. The traditional way is, from a top-down vantage, that at the highest level, you descend from the root to the various main problem types. Beneath each problem node would be subclassifications based on the techniques used to attack that problem. (I could say 'solve', but that is certainly not the case for some problems.) This is the most natural classification, because you often get a problem put in front of you, and you start from there. Problem-driven. But what if a method to attack problem A and a method to attack problem B were very similar? Is there a way to combine these method nodes? In the problem-driven tree, not really. So what the author suggests is a method-driven tree, where problems are descendents of a method. You regard solutions or research into problems as instantiations of a particular method. Sound familiar? You can draw analogies with physics, if you map the methods into the laws of physics. We should not follow this too literally. But seen from this vantage, the author's idea is very reasonable. In physics, the solutions to a problem are (ideally, anyway) derived ultimately from the laws of physics. We should not draw a contrast between the author's suggestions and the prevailing approach too sharply. At the research level, a competent analyst should be aware of different problem areas from which solutions could be drawn, or to which a solution might be adapted. As a practical matter, it comes down to the difference in emphasis for most, rather than a different worldview. Nonetheless, this is potentially quite a gem for a researcher. The author's different emphasis may be the trigger to solving one of your problems.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
Posted November 9, 2009
No text was provided for this review.