Book description
Presenting a complementary perspective to standard books on algorithms, A Guide to Algorithm Design: Paradigms, Methods, and Complexity Analysis provides a roadmap for readers to determine the difficulty of an algorithmic problem by finding an optimal solution or proving complexity results. It gives a practical treatment of algorithmic complexity and guides readers in solving algorithmic problems.
Divided into three parts, the book offers a comprehensive set of problems with solutions as well as in-depth case studies that demonstrate how to assess the complexity of a new problem.
- Part I helps readers understand the main design principles and design efficient algorithms.
- Part II covers polynomial reductions from NP-complete problems and approaches that go beyond NP-completeness.
- Part III supplies readers with tools and techniques to evaluate problem complexity, including how to determine which instances are polynomial and which are NP-hard.
Drawing on the authors’ classroom-tested material, this text takes readers step by step through the concepts and methods for analyzing algorithmic complexity. Through many problems and detailed examples, readers can investigate polynomial-time algorithms and NP-completeness and beyond.
Table of contents
- Front Cover
- Contents (1/2)
- Contents (2/2)
- Preface
- Part I: Polynomial-time algorithms: Exercises
- Chapter 1: Introduction to complexity (1/6)
- Chapter 1: Introduction to complexity (2/6)
- Chapter 1: Introduction to complexity (3/6)
- Chapter 1: Introduction to complexity (4/6)
- Chapter 1: Introduction to complexity (5/6)
- Chapter 1: Introduction to complexity (6/6)
- Chapter 2: Divide-and-conquer (1/4)
- Chapter 2: Divide-and-conquer (2/4)
- Chapter 2: Divide-and-conquer (3/4)
- Chapter 2: Divide-and-conquer (4/4)
- Chapter 3: Greedy algorithms (1/6)
- Chapter 3: Greedy algorithms (2/6)
- Chapter 3: Greedy algorithms (3/6)
- Chapter 3: Greedy algorithms (4/6)
- Chapter 3: Greedy algorithms (5/6)
- Chapter 3: Greedy algorithms (6/6)
- Chapter 4: Dynamic programming (1/5)
- Chapter 4: Dynamic programming (2/5)
- Chapter 4: Dynamic programming (3/5)
- Chapter 4: Dynamic programming (4/5)
- Chapter 4: Dynamic programming (5/5)
- Chapter 5: Amortized analysis (1/4)
- Chapter 5: Amortized analysis (2/4)
- Chapter 5: Amortized analysis (3/4)
- Chapter 5: Amortized analysis (4/4)
- Part II: NP-completeness and beyond
- Chapter 6: NP-completeness (1/5)
- Chapter 6: NP-completeness (2/5)
- Chapter 6: NP-completeness (3/5)
- Chapter 6: NP-completeness (4/5)
- Chapter 6: NP-completeness (5/5)
- Chapter 7: Exercises on NP-completeness (1/6)
- Chapter 7: Exercises on NP-completeness (2/6)
- Chapter 7: Exercises on NP-completeness (3/6)
- Chapter 7: Exercises on NP-completeness (4/6)
- Chapter 7: Exercises on NP-completeness (5/6)
- Chapter 7: Exercises on NP-completeness (6/6)
- Chapter 8: Beyond NP-completeness (1/7)
- Chapter 8: Beyond NP-completeness (2/7)
- Chapter 8: Beyond NP-completeness (3/7)
- Chapter 8: Beyond NP-completeness (4/7)
- Chapter 8: Beyond NP-completeness (5/7)
- Chapter 8: Beyond NP-completeness (6/7)
- Chapter 8: Beyond NP-completeness (7/7)
- Chapter 9: Exercises going beyond NP-completeness (1/6)
- Chapter 9: Exercises going beyond NP-completeness (2/6)
- Chapter 9: Exercises going beyond NP-completeness (3/6)
- Chapter 9: Exercises going beyond NP-completeness (4/6)
- Chapter 9: Exercises going beyond NP-completeness (5/6)
- Chapter 9: Exercises going beyond NP-completeness (6/6)
- Part III: Reasoning on problem complexity
- Chapter 10: Reasoning to assess a problem complexity (1/2)
- Chapter 10: Reasoning to assess a problem complexity (2/2)
- Chapter 11: Chains-on-chains partitioning (1/3)
- Chapter 11: Chains-on-chains partitioning (2/3)
- Chapter 11: Chains-on-chains partitioning (3/3)
- Chapter 12: Replica placement in tree networks (1/6)
- Chapter 12: Replica placement in tree networks (2/6)
- Chapter 12: Replica placement in tree networks (3/6)
- Chapter 12: Replica placement in tree networks (4/6)
- Chapter 12: Replica placement in tree networks (5/6)
- Chapter 12: Replica placement in tree networks (6/6)
- Chapter13: Packet routing (1/4)
- Chapter13: Packet routing (2/4)
- Chapter13: Packet routing (3/4)
- Chapter13: Packet routing (4/4)
- Chapter 14: Matrix product, or tiling the unit square (1/4)
- Chapter 14: Matrix product, or tiling the unit square (2/4)
- Chapter 14: Matrix product, or tiling the unit square (3/4)
- Chapter 14: Matrix product, or tiling the unit square (4/4)
- Chapter 15: Online scheduling (1/6)
- Chapter 15: Online scheduling (2/6)
- Chapter 15: Online scheduling (3/6)
- Chapter 15: Online scheduling (4/6)
- Chapter 15: Online scheduling (5/6)
- Chapter 15: Online scheduling (6/6)
- References (1/2)
- References (2/2)
- Back Cover
Product information
- Title: A Guide to Algorithm Design
- Author(s):
- Release date: August 2013
- Publisher(s): CRC Press
- ISBN: 9781439898130
You might also like
book
Algorithms For Dummies
Discover how algorithms shape and impact our digital world All data, big or small, starts with …
book
C++ Data Structures and Algorithm Design Principles
Get started with C++ programming by learning how to build applications using its data structures and …
book
Design and Analysis of Algorithms
All aspects pertaining to algorithm design and algorithm analysis have been discussed over the chapters in …
book
Design and analysis of Algorithms, 2nd Edition
This second edition of Design and Analysis of Algorithms continues to provide a comprehensive exposure to …