000 01847cam a2200217 a 4500
008 080110s2008 enka 001 0 eng
020 _a9780521614108 (pbk)
041 _aeng
080 _a510.6
_bEDM
100 1 _aEdmonds, Jeff
245 1 0 _aHow to Think about Algorithms
260 _aNew York
_bCambridge University Press
_c2008
300 _axiii, 448p
505 _aIterative algorithms: measures of progress and loop invariants Examples using more-of-the-input loop invariants Abstract data types Narrowing the search space: binary search Iterative sorting algorithms Euclid's GCD algorithm The loop invariant for lower bounds Abstractions, techniques, and theory Some simple examples of recursive algorithms Recursion on trees Recursive images Parsing with context-free grammars Definition of optimization problems Graph search algorithms Network flows and linear programming Greedy algorithms Recursive backtracking Dynamic programming algorithms Examples of dynamic programs Reductions and NP-completeness Randomized algorithms Existential and universal quantifiers Time complexity Logarithms and exponentials Asymptotic growth Adding-made-easy approximations Recurrence relations A formal proof of correctness
520 _a"This book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. Jeff Edmonds provides both the big picture and easy step-by-step methods for developing algorithms, while avoiding the common pitfalls. Paradigms such as loop invariants and recursion help to unify a huge range of algorithms into a few meta-algorithms. Part of the goal is to teach the students to think abstractly."--Jacket
650 0 _aAlgorithms
650 0 _aInvariants
650 0 _aRecursion theory
690 _aMathematics
942 _cBK
999 _c23505
_d23505