Loading...

How to think about Algorithms

There are many algorithm texts that provide lots of well-polished code and proofs of correctness. This book is not one of them. Instead, this book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. By looking at both the big picture and...

Full description

Bibliographic Details
Main Author: Jeff Edmonds
Format: Printed Book
Published: Cambridge ; New York Cambridge University Press 2008
Subjects:
LEADER 02443nam a2200169Ia 4500
999 |c 28930  |d 28930 
020 |a 9780521614108 
082 |a 518.1 EDM-H 
100 |a Jeff Edmonds 
245 |a How to think about Algorithms 
260 |a Cambridge ; New York  |b Cambridge University Press  |c 2008 
300 |a  xiii, 448 pages : illustrations ; 25 cm 
505 |a  Iterative 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 There are many algorithm texts that provide lots of well-polished code and proofs of correctness. This book is not one of them. Instead, this book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. By looking at both the big picture and easy step-by-step methods for developing algorithms, the author helps students avoid the common pitfalls. He stresses paradigms such as loop invariants and recursion to unify a huge range of algorithms into a few meta-algorithms. Part of the goal is to teach the students to think abstractly. Without getting bogged with formal proofs, the book fosters a deeper understanding of how and why each algorithm works. These insights are presented in a slow and clear manner accessible to second- or third-year students of computer science, preparing them to find their own innovative ways to solve problems. 
650 |a Study and teaching, Invariants, Algorithms, Loops (Group theory), Recursion theory 
942 |c BK 
952 |0 0  |1 0  |4 0  |6 518_000000000000000__1_EDMH  |7 0  |9 31655  |a DCB  |b DCB  |d 2015-09-01  |l 0  |o 518/.1 EDM-H  |p DCB2547  |r 2015-09-01  |w 2015-09-01  |y BK