Skip to content
Register Sign in Wishlist

How to Think About Algorithms

$44.00 USD

  • Date Published: August 2008
  • availability: This ISBN is for an eBook version which is distributed on our behalf by a third party.
  • format: Adobe eBook Reader
  • isbn: 9780511410451

$ 44.00 USD
Adobe eBook Reader

You will be taken to for this purchase
Buy eBook Add to wishlist

Other available formats:
Paperback, Hardback

Looking for an inspection copy?

Please email to enquire about an inspection copy of this book

Product filter button
About the Authors
  • This textbook, for second- or third-year students of computer science, presents insights, notations, and analogies to help them describe and think about algorithms like an expert, without grinding through lots of formal proof. Solutions to many problems are provided to let students check their progress, while class-tested PowerPoint slides are on the web for anyone running the course. By looking at both the big picture and easy step-by-step methods for developing algorithms, the author guides students around the common pitfalls. He stresses paradigms such as loop invariants and recursion to unify a huge range of algorithms into a few meta-algorithms. The book fosters a deeper understanding of how and why each algorithm works. These insights are presented in a careful and clear way, helping students to think abstractly and preparing them for creating 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

    '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.' Harold Thimbleby, The Times Higher Education Supplement

    '… a great book to learn how to design and create new algorithms … a good book that the reader will appreciate in the first and subsequent reads, and it will make better developers and programmers.' Journal of Functional 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: August 2008
    • format: Adobe eBook Reader
    • isbn: 9780511410451
    • contains: 156 b/w illus. 24 tables 203 exercises
    • availability: This ISBN is for an eBook version which is distributed on our behalf by a third party.
  • 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 is supported by one or more locked resources. Access to locked resources is granted exclusively by Cambridge University Press to lecturers whose faculty status has been verified. To gain access to locked resources, lecturers should sign in to or register for a Cambridge user account.

    Please use locked resources responsibly and exercise your professional discretion when choosing how you share these materials with your students. Other lecturers may wish to use locked resources for assessment purposes and their usefulness is undermined when the source files (for example, solution manuals or test banks) are shared online or via social networks.

    Supplementary resources are subject to copyright. Lecturers are permitted to view, print or download these resources for use in their teaching, but may not change them or use them for commercial gain.

    If you are having problems accessing these resources please contact

  • 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.