Table of contents for How to think about algorithms : loop invariants and recursion / Jeff Edmonds.

Bibliographic record and links to related information available from the Library of Congress catalog

Information from electronic data provided by the publisher. May be incomplete or contain other coding.

Part I. Iterative Algorithms and Loop Invariants: 1. Measures of progress and loop invariants; 2. Examples using more of the input loop invariant; 3. Abstract data types; 4. Narrowing the search space: binary search; 5. Iterative sorting algorithms; 6. Euclid's GCD algorithm; 7. The loop invariant for lower bounds; Part II. Recursion: 8. Abstractions, techniques, and theory; 9. Some simple examples of recursive algorithms; 10. Recursion on trees; 11. Recursive images; 12. Parsing with context-free grammars; Part III. Optimization Problems: 13. Definition of optimization problems; 14. Graph search algorithms; 15. Network flows and linear programming; 16. Greedy algorithms; 17. Recursive backtracking; 18. Dynamic programming algorithms; 19. Examples of dynamic programming; 20. Reductions and NP-completeness; 21. Randomized algorithms; Part IV. Appendix: 22. Existential and universal quantifiers; 23. Time complexity; 24. Logarithms and exponentials; 25. Asymptotic growth; 26. Adding made easy approximations; 27. Recurrence relations; 28. A formal proof of correctness; Part V. Exercise Solutions.

Library of Congress subject headings for this publication:
Algorithms -- Study and teaching.
Loops (Group theory) -- Study and teaching.
Invariants -- Study and teaching.
Recursion theory -- Study and teaching.