Skip to content
Register Sign in Wishlist

How to Think About Algorithms

$54.99 (X)

  • Date Published: May 2008
  • availability: Available
  • format: Paperback
  • isbn: 9780521614108

$ 54.99 (X)

Add to cart Add to wishlist

Other available formats:
Hardback, eBook

Request examination copy

Instructors may request a copy of this title for examination

Product filter button
About the Authors
  • 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.

    • Includes lots of exercises, with selected solutions in the text; PowerPoint slides for instructors available from the web
    • Presents the big picture and step-by-step methods for developing algorithms, while avoiding common pitfalls
    • Appendices give background on big-O notation, logic, asymptotics, and other mathematical tools
    Read more

    Reviews & endorsements

    "Edmonds intends this text for use in advanced undergraduate courses in algorithms. The author encourages abstract thinking through exercises informed by real-world scenarios to help students access and master algorithm concepts, including proofs of correctness, with greater ease. Twenty-one chapters under the main themes of iterative algorithms and loop invariants (section one), recursion (section two), and optimization problems (section three) cover topics that include: measures of progress and loop invariants, abstract data types, binary search, iterative sorting algorithms, abstractions and theory, recursion on trees, recursive images, graph search algorithms, network flows and linear programming, greedy algorithms, and dynamic programming algorithms. Seven additional chapters in the appendix consider specific algorithms such as those measuring time complexity and asymptomatic growth."
    Book News, Inc.

    "Reading this is like sitting at the feet of the master: it leads an apprentice from knowing how to program to understanding deep principles of algorithms. Presentation [is] informed and friendly."
    Harold Thimbleby, Times Higher Education

    "I believe this book could be considered a must-read for every teacher of algorithms. Even if he reads things he already knows, he will be able to view them from different angles and in the process get some very useful ideas on how to explain algorithms in class. The book would also be invaluable to researchers who wish to gain a deeper understanding on how algorithms work, and to undergraduate students who wish to develop their algorithmic thought... it has the potential to be considered a classic."
    Kyriakos N. Sgarbas for SIGACT News

    "All in all this is a great book to learn how to design and create new algorithms. The author teaches you how to think about algorithms step by step, building the necessary knowledge and illustrating the process with common algorithms. This is a good book that the reader will appreciate in the first and subsequent reads, it will make better developers and programmers."
    Journal of Fuctional Programming

    See more reviews

    Customer reviews

    Not yet reviewed

    Be the first to review

    Review was not posted due to profanity


    , create a review

    (If you're not , sign out)

    Please enter the right captcha value
    Please enter a star rating.
    Your review must be a minimum of 12 words.

    How do you rate this item?


    Product details

    • Date Published: May 2008
    • format: Paperback
    • isbn: 9780521614108
    • length: 472 pages
    • dimensions: 233 x 177 x 24 mm
    • weight: 0.75kg
    • contains: 156 b/w illus. 24 tables 203 exercises
    • availability: Available
  • Table of Contents

    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.

  • Resources for

    How to Think About Algorithms

    Jeff Edmonds

    Find resources associated with this title

    Type Name Unlocked * Format Size

    Showing of

    Back to top

    *This title has one or more locked files and access is given only to instructors adopting the textbook for their class. We need to enforce this strictly so that solutions are not made available to students. To gain access to locked resources you either need first to sign in or register for an account.

    These resources are provided free of charge by Cambridge University Press with permission of the author of the corresponding work, but are subject to copyright. You are permitted to view, print and download these resources for your own personal use only, provided any copyright lines on the resources are not removed or altered in any way. Any other use, including but not limited to distribution of the resources in modified form, or via electronic or other media, is strictly prohibited unless you have permission from the author of the corresponding work and provided you give appropriate acknowledgement of the source.

    If you are having problems accessing these resources please email

  • Instructors have used or reviewed this title for the following courses

    • Algorithms and datat structures
    • Analysis of Algorithms
    • Data Structures and Algorithms I
    • Data and Algorithm Analysis
    • Intro to Algorithms and Dat Structures
    • Introduction to the Analysis of Algorithms
    • Renaissance/Reformation Europe
    • Unit Operations I
  • Author

    Jeff Edmonds, York University, Toronto
    Jeff Edmonds received his Ph.D. in 1992 at University of Toronto in theoretical computer science. His thesis proved that certain computation problems require a given amount of time and space. He did his postdoctorate work at the ICSI in Berkeley on secure multi-media data transmission and in 1995 became an Associate Professor in the Department of Computer Science at York University, Canada. He has taught their algorithms course thirteen times to date. He has worked extensively at IIT Mumbai, India, and University of California San Diego. He is well published in the top theoretical computer science journals in topics including complexity theory, scheduling, proof systems, probability theory, combinatorics, and, of course, algorithms.

Sign In

Please sign in to access your account


Not already registered? Create an account now. ×

Sorry, this resource is locked

Please register or sign in to request access. If you are having problems accessing these resources please email

Register Sign in
Please note that this file is password protected. You will be asked to input your password on the next screen.

» Proceed

You are now leaving the Cambridge University Press website. Your eBook purchase and download will be completed by our partner Please see the permission section of the catalogue page for details of the print & copy limits on our eBooks.

Continue ×

Continue ×

Continue ×

Find content that relates to you

Join us online

This site uses cookies to improve your experience. Read more Close

Are you sure you want to delete your account?

This cannot be undone.


Thank you for your feedback which will help us improve our service.

If you requested a response, we will make sure to get back to you shortly.

Please fill in the required fields in your feedback submission.