How to think about algorithms /

Edmonds, Jeff, 1963-

How to think about algorithms / Jeff Edmonds. - Second edition. - Cambridge, 2024. - xv, 599 pages : ill. ;

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.

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.

9781009302180


Algorithms
Loops (Group theory)
Invariants
Recursion theory--Study and teaching.--Study and teaching.--Study and teaching.--Study and teaching.

518.1 / EDM