TY - BOOK AU - Edmonds,Jeff AU - TI - How to think about algorithms SN - 9781009302180 U1 - 518.1 23/eng20230722 PY - 2024/// PB - Cambridge KW - Algorithms KW - Loops (Group theory) KW - Invariants KW - Recursion theory KW - Study and teaching N1 - Frontmatter Introduction pp 1-2 Part I - Iterative Algorithms and Loop Invariants pp 3-4 1 - Iterative Algorithms: Measures of Progress and Loop Invariants pp 5-32 2 - Examples Using More-of-the-Input Loop Invariants pp 33-46 3 - Abstract Data Types pp 47-63 4 - Narrowing the Search Space: Binary Search pp 64-73 5 - Iterative Sorting Algorithms pp 74-79 6 - More Iterative Algorithms pp 80-87 7 - The Loop Invariant for Lower Bounds pp 88-96 8 - Key Concepts Summary: Loop Invariants and Iterative Algorithms pp 97-101 9 - Additional Exercises: Part I pp 102-123 10 - Partial Solutions to Additional Exercises: Part I pp 124-130 Part II - Recursion pp 131-132 11 - Abstractions, Techniques, and Theory pp 133-148 12 - Some Simple Examples of Recursive Algorithms pp 149-168 13 - Recursion on Trees pp 169-191 14 - Recursive Images pp 192-197 15 - Parsing with Context-Free Grammars pp 198-207 16 - Key Concepts Summary: Recursion pp 208-210 17 - Additional Exercises: Part II pp 211-229 18 - Partial Solutions to Additional Exercises: Part II pp 230-238 Part III - Optimization Problems pp 239-240 19 - Definition of Optimization Problems pp 241-242 20 - Graph Search Algorithms pp 243-267 21 - Network Flows and Linear Programming pp 268-293 22 - Greedy Algorithms pp 294-320 23 - Recursive Backtracking pp 321-335 24 - Dynamic Programming Algorithms pp 336-374 25 - Designing Dynamic Programming Algorithms via Reductions pp 375-379 26 - The Game of Life pp 380-389 27 - Solution Is a Tree pp 390-401 28 - Reductions and NP-Completeness pp 402-422 29 - Randomized Algorithms pp 423-430 30 - Machine Learning pp 431-438 31 - Key Concepts Summary: Greedy Algorithms and Dynamic Programming pp 439-453 32 - Additional Exercises: Part III pp 454-481 33 - Partial Solutions to Additional Exercises: Part III pp 482-496 Part IV - Additional Topics pp 497-498 34 - Existential and Universal Quantifiers pp 499-507 35 - Time Complexity pp 508-514 36 - Logarithms and Exponentials pp 515-517 37 - Asymptotic Growth pp 518-528 38 - Adding-Made-Easy Approximations pp 529-539 39 - Recurrence Relations pp 540-548 40 - A Formal Proof of Correctness pp 549-550 41 - Additional Exercises: Part IV pp 551-555 42 - Partial Solutions to Additional Exercises: Part IV pp 556-560 Exercise Solutions pp 561-587 Conclusion pp 588-588 Index pp 589-600; Access restricted to subscribing institutions N2 - Understand algorithms and their design with this revised student-friendly textbook. Unlike other algorithms books, this one is approachable, the methods it explains are straightforward, and the insights it provides are numerous and valuable. Without grinding through lots of formal proof, students will benefit from step-by-step methods for developing algorithms, expert guidance on common pitfalls, and an appreciation of the bigger picture. Revised and updated, this second edition includes a new chapter on machine learning algorithms, and concise key concept summaries at the end of each part for quick reference. Also new to this edition are more than 150 new exercises: selected solutions are included to let students check their progress, while a full solutions manual is available online for instructors. No other text explains complex topics such as loop invariants as clearly, helping students to think abstractly and preparing them for creating their own innovative ways to solve problems UR - https://ezproxy.lib.gla.ac.uk/login?url=https://www.cambridge.org/core/product/identifier/9781009302180/type/BOOK ER -