Algorithm Design introduces algorithms by looking at the real-world problems that motivate them. The book teaches students a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science. August 6, 2009 Author, Jon Kleinberg, was recently cited in the New York Times for his statistical analysis research in the Internet age.
| Condition | Price | |||
|---|---|---|---|---|
|
New (184 available)
Ships Separately |
$258.04 USD | Add To Cart | Ships separately from Better World Books suppliers | |
|
eBook Obtain a digital book from our friends at eBooks.com.
|
{{ebooksDotComPrice}} {{ebooksDotComCurrency}} | eBooks.com | Digital edition from eBooks.com | |
|
Audio Book Obtain a digital book from our friends at AudiobooksNow.com.
|
{{audioBooksNowPrice}} {{audioBooksNowCurrency}} | AudiobooksNow.com | Digital edition from AudiobooksNow.com |
| About the Authors | p. v |
| Preface | p. xiii |
| Introduction: Some Representative Problems | p. 1 |
| A First Problem: Stable Matching | p. 1 |
| Five Representative Problems | p. 12 |
| Solved Exercises | p. 19 |
| Exercises | p. 22 |
| Notes and Further Reading | p. 28 |
| Basics of Algorithm Analysis | p. 29 |
| Computational Tractability | p. 29 |
| Asymptotic Order of Growth | p. 35 |
| Implementing the Stable Matching Algorithm Using Lists and Arrays | p. 42 |
| A Survey of Common Running Times | p. 47 |
| A More Complex Data Structure: Priority Queues | p. 57 |
| Solved Exercises | p. 65 |
| Exercises | p. 67 |
| Notes and Further Reading | p. 70 |
| Graphs | p. 73 |
| Basic Definitions and Applications | p. 73 |
| Graph Connectivity and Graph Traversal | p. 78 |
| Implementing Graph Traversal Using Queues and Stacks | p. 87 |
| Testing Bipartiteness: An Application of Breadth-First Search | p. 94 |
| Connectivity in Directed Graphs | p. 97 |
| Directed Acyclic Graphs and Topological Ordering | p. 99 |
| Solved Exercises | p. 104 |
| Exercises | p. 107 |
| Notes and Further Reading | p. 112 |
| Greedy Algorithms | p. 115 |
| Interval Scheduling: The Greedy Algorithm Stays Ahead | p. 116 |
| Scheduling to Minimize Lateness: An Exchange Argument | p. 125 |
| Optimal Caching: A More Complex Exchange Argument | p. 131 |
| Shortest Paths in a Graph | p. 137 |
| The Minimum Spanning Tree Problem | p. 142 |
| Implementing Kruskal's Algorithm: The Union-Find Data Structure | p. 151 |
| Clustering | p. 157 |
| Huffman Codes and Data Compression | p. 161 |
| Minimum-Cost Arborescences: A Multi-Phase Greedy Algorithm | p. 177 |
| Solved Exercises | p. 183 |
| Exercises | p. 188 |
| Notes and Further Reading | p. 205 |
| Divide and Conquer | p. 209 |
| A First Recurrence: The Mergesort Algorithm | p. 210 |
| Further Recurrence Relations | p. 214 |
| Counting Inversions | p. 221 |
| Finding the Closest Pair of Points | p. 225 |
| Integer Multiplication | p. 231 |
| Convolutions and the Fast Fourier Transform | p. 234 |
| Solved Exercises | p. 242 |
| Exercises | p. 246 |
| Notes and Further Reading | p. 249 |
| Dynamic Programming | p. 251 |
| Weighted Interval Scheduling: A Recursive Procedure | p. 252 |
| Principles of Dynamic Programming: Memoization or Iteration over Subproblems | p. 258 |
| Segmented Least Squares: Multi-way Choices | p. 261 |
| Subset Sums and Knapsacks: Adding a Variable | p. 266 |
| RNA Secondary Structure: Dynamic Programming over Intervals | p. 272 |
| Sequence Alignment | p. 278 |
| Sequence Alignment in Linear Space via Divide and Conquer | p. 284 |
| Shortest Paths in a Graph | p. 290 |
| Shortest Paths and Distance Vector Protocols | p. 297 |
| Negative Cycles in a Graph | p. 301 |
| Solved Exercises | p. 307 |
| Exercises | p. 312 |
| Notes and Further Reading | p. 335 |
| Network Flow | p. 337 |
| The Maximum-Flow Problem and the Ford-Fulkerson Algorithm | p. 338 |
| Maximum Flows and Minimum Cuts in a Network | p. 346 |
| Choosing Good Augmenting Paths | p. 352 |
| The Preflow-Push Maximum-Flow Algorithm | p. 357 |
| A First Application: The Bipartite Matching Problem | p. 367 |
| Disjoint Paths in Directed and Undirected Graphs | p. 373 |
| Extensions to the Maximum-Flow Problem | p. 378 |
| Survey Design | p. 384 |
| Airline Scheduling | p. 387 |
| Image Segmentation | p. 391 |
| Project Selection | p. 396 |
| Baseball Elimination | p. 400 |
| A Further Direction: Adding Costs to the Matching Problem | p. 404 |
| Solved Exercises | p. 411 |
| Exercises | p. 415 |
| Notes and Further Reading | p. 448 |
| NP and Computational Intractability | p. 451 |
| Polynomial-Time Reductions | p. 452 |
| Reductions via "Gadgets": The Satisfiability Problem | p. 459 |
| Efficient Certification and the Definition of NP | p. 463 |
| NP-Complete Problems | p. 466 |
| Sequencing Problems | p. 473 |
| Partitioning Problems | p. 481 |
| Graph Coloring | p. 485 |
| Numerical Problems | p. 490 |
| Co-NP and the Asymmetry of NP | p. 495 |
| A Partial Taxonomy of Hard Problems | p. 497 |
| Solved Exercises | p. 500 |
| Exercises | p. 505 |
| Notes and Further Reading | p. 529 |
| PSPACE: A Class of Problems beyond NP | p. 531 |
| PSPACE | p. 531 |
| Some Hard Problems in PSPACE | p. 533 |
| Solving Quantified Problems and Games in Polynomial Space | p. 536 |
| Solving the Planning Problem in Polynomial Space | p. 538 |
| Proving Problems PSPACE-Complete | p. 543 |
| Solved Exercises | p. 547 |
| Exercises | p. 550 |
| Notes and Further Reading | p. 551 |
| Extending the Limits of Tractability | p. 553 |
| Finding Small Vertex Covers | p. 554 |
| Solving NP-Hard Problems on Trees | p. 558 |
| Coloring a Set of Circular Arcs | p. 563 |
| Tree Decompositions of Graphs | p. 572 |
| Constructing a Tree Decomposition | p. 584 |
| Solved Exercises | p. 591 |
| Exercises | p. 594 |
| Notes and Further Reading | p. 598 |
| Approximation Algorithms | p. 599 |
| Greedy Algorithms and Bounds on the Optimum: A Load Balancing Problem | p. 600 |
| The Center Selection Problem | p. 606 |
| Set Cover: A General Greedy Heuristic | p. 612 |
| The Pricing Method: Vertex Cover | p. 618 |
| Maximization via the Pricing Method: The Disjoint Paths Problem | p. 624 |
| Linear Programming and Rounding: An Application to Vertex Cover | p. 630 |
| Load Balancing Revisited: A More Advanced LP Application | p. 637 |
| Arbitrarily Good Approximations: The Knapsack Problem | p. 644 |
| Solved Exercises | p. 649 |
| Exercises | p. 651 |
| Notes and Further Reading | p. 659 |
| Local Search | p. 661 |
| The Landscape of an Optimization Problem | p. 662 |
| The Metropolis Algorithm and Simulated Annealing | p. 666 |
| An Application of Local Search to Hopfield Neural Networks | p. 671 |
| Maximum-Cut Approximation via Local Search | p. 676 |
| Choosing a Neighbor Relation | p. 679 |
| Classification via Local Search | p. 681 |
| Best-Response Dynamics and Nash Equilibria | p. 690 |
| Solved Exercises | p. 700 |
| Exercises | p. 702 |
| Notes and Further Reading | p. 705 |
| Randomized Algorithms | p. 707 |
| A First Application: Contention Resolution | p. 708 |
| Finding the Global Minimum Cut | p. 714 |
| Random Variables and Their Expectations | p. 719 |
| A Randomized Approximation Algorithm for MAX 3-SAT | p. 724 |
| Randomized Divide and Conquer: Median-Finding and Quicksort | p. 727 |
| Hashing: A Randomized Implementation of Dictionaries | p. 734 |
| Finding the Closest Pair of Points: A Randomized Approach | p. 741 |
| Randomized Caching | p. 750 |
| Chernoff Bounds | p. 758 |
| Load Balancing | p. 760 |
| Packet Routing | p. 762 |
| Background: Some Basic Probability Definitions | p. 769 |
| Solved Exercises | p. 776 |
| Exercises | p. 782 |
| Notes and Further Reading | p. 793 |
| Epilogue: Algorithms That Run Forever | p. 795 |
| References | p. 805 |
| Index | p. 815 |
| Table of Contents provided by Ingram. All Rights Reserved. |
| Find at your local library from our friends at WorldCat | Find Libraries |
Algorithm Design introduces algorithms by looking at the real-world problems that motivate them. The book teaches students a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understandi ...
Read full overview
Algorithm Design introduces algorithms by looking at the real-world problems that motivate them. The book teaches students a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science. August 6, 2009 Author, Jon Kleinberg, was recently cited in the New York Times for his statistical analysis research in the Internet age.
| About the Authors | p. v |
| Preface | p. xiii |
| Introduction: Some Representative Problems | p. 1 |
| A First Problem: Stable Matching | p. 1 |
| Five Representative Problems | p. 12 |
| Solved Exercises | p. 19 |
| Exercises | p. 22 |
| Notes and Further Reading | p. 28 |
| Basics of Algorithm Analysis | p. 29 |
| Computational Tractability | p. 29 |
| Asymptotic Order of Growth | p. 35 |
| Implementing the Stable Matching Algorithm Using Lists and Arrays | p. 42 |
| A Survey of Common Running Times | p. 47 |
| A More Complex Data Structure: Priority Queues | p. 57 |
| Solved Exercises | p. 65 |
| Exercises | p. 67 |
| Notes and Further Reading | p. 70 |
| Graphs | p. 73 |
| Basic Definitions and Applications | p. 73 |
| Graph Connectivity and Graph Traversal | p. 78 |
| Implementing Graph Traversal Using Queues and Stacks | p. 87 |
| Testing Bipartiteness: An Application of Breadth-First Search | p. 94 |
| Connectivity in Directed Graphs | p. 97 |
| Directed Acyclic Graphs and Topological Ordering | p. 99 |
| Solved Exercises | p. 104 |
| Exercises | p. 107 |
| Notes and Further Reading | p. 112 |
| Greedy Algorithms | p. 115 |
| Interval Scheduling: The Greedy Algorithm Stays Ahead | p. 116 |
| Scheduling to Minimize Lateness: An Exchange Argument | p. 125 |
| Optimal Caching: A More Complex Exchange Argument | p. 131 |
| Shortest Paths in a Graph | p. 137 |
| The Minimum Spanning Tree Problem | p. 142 |
| Implementing Kruskal's Algorithm: The Union-Find Data Structure | p. 151 |
| Clustering | p. 157 |
| Huffman Codes and Data Compression | p. 161 |
| Minimum-Cost Arborescences: A Multi-Phase Greedy Algorithm | p. 177 |
| Solved Exercises | p. 183 |
| Exercises | p. 188 |
| Notes and Further Reading | p. 205 |
| Divide and Conquer | p. 209 |
| A First Recurrence: The Mergesort Algorithm | p. 210 |
| Further Recurrence Relations | p. 214 |
| Counting Inversions | p. 221 |
| Finding the Closest Pair of Points | p. 225 |
| Integer Multiplication | p. 231 |
| Convolutions and the Fast Fourier Transform | p. 234 |
| Solved Exercises | p. 242 |
| Exercises | p. 246 |
| Notes and Further Reading | p. 249 |
| Dynamic Programming | p. 251 |
| Weighted Interval Scheduling: A Recursive Procedure | p. 252 |
| Principles of Dynamic Programming: Memoization or Iteration over Subproblems | p. 258 |
| Segmented Least Squares: Multi-way Choices | p. 261 |
| Subset Sums and Knapsacks: Adding a Variable | p. 266 |
| RNA Secondary Structure: Dynamic Programming over Intervals | p. 272 |
| Sequence Alignment | p. 278 |
| Sequence Alignment in Linear Space via Divide and Conquer | p. 284 |
| Shortest Paths in a Graph | p. 290 |
| Shortest Paths and Distance Vector Protocols | p. 297 |
| Negative Cycles in a Graph | p. 301 |
| Solved Exercises | p. 307 |
| Exercises | p. 312 |
| Notes and Further Reading | p. 335 |
| Network Flow | p. 337 |
| The Maximum-Flow Problem and the Ford-Fulkerson Algorithm | p. 338 |
| Maximum Flows and Minimum Cuts in a Network | p. 346 |
| Choosing Good Augmenting Paths | p. 352 |
| The Preflow-Push Maximum-Flow Algorithm | p. 357 |
| A First Application: The Bipartite Matching Problem | p. 367 |
| Disjoint Paths in Directed and Undirected Graphs | p. 373 |
| Extensions to the Maximum-Flow Problem | p. 378 |
| Survey Design | p. 384 |
| Airline Scheduling | p. 387 |
| Image Segmentation | p. 391 |
| Project Selection | p. 396 |
| Baseball Elimination | p. 400 |
| A Further Direction: Adding Costs to the Matching Problem | p. 404 |
| Solved Exercises | p. 411 |
| Exercises | p. 415 |
| Notes and Further Reading | p. 448 |
| NP and Computational Intractability | p. 451 |
| Polynomial-Time Reductions | p. 452 |
| Reductions via "Gadgets": The Satisfiability Problem | p. 459 |
| Efficient Certification and the Definition of NP | p. 463 |
| NP-Complete Problems | p. 466 |
| Sequencing Problems | p. 473 |
| Partitioning Problems | p. 481 |
| Graph Coloring | p. 485 |
| Numerical Problems | p. 490 |
| Co-NP and the Asymmetry of NP | p. 495 |
| A Partial Taxonomy of Hard Problems | p. 497 |
| Solved Exercises | p. 500 |
| Exercises | p. 505 |
| Notes and Further Reading | p. 529 |
| PSPACE: A Class of Problems beyond NP | p. 531 |
| PSPACE | p. 531 |
| Some Hard Problems in PSPACE | p. 533 |
| Solving Quantified Problems and Games in Polynomial Space | p. 536 |
| Solving the Planning Problem in Polynomial Space | p. 538 |
| Proving Problems PSPACE-Complete | p. 543 |
| Solved Exercises | p. 547 |
| Exercises | p. 550 |
| Notes and Further Reading | p. 551 |
| Extending the Limits of Tractability | p. 553 |
| Finding Small Vertex Covers | p. 554 |
| Solving NP-Hard Problems on Trees | p. 558 |
| Coloring a Set of Circular Arcs | p. 563 |
| Tree Decompositions of Graphs | p. 572 |
| Constructing a Tree Decomposition | p. 584 |
| Solved Exercises | p. 591 |
| Exercises | p. 594 |
| Notes and Further Reading | p. 598 |
| Approximation Algorithms | p. 599 |
| Greedy Algorithms and Bounds on the Optimum: A Load Balancing Problem | p. 600 |
| The Center Selection Problem | p. 606 |
| Set Cover: A General Greedy Heuristic | p. 612 |
| The Pricing Method: Vertex Cover | p. 618 |
| Maximization via the Pricing Method: The Disjoint Paths Problem | p. 624 |
| Linear Programming and Rounding: An Application to Vertex Cover | p. 630 |
| Load Balancing Revisited: A More Advanced LP Application | p. 637 |
| Arbitrarily Good Approximations: The Knapsack Problem | p. 644 |
| Solved Exercises | p. 649 |
| Exercises | p. 651 |
| Notes and Further Reading | p. 659 |
| Local Search | p. 661 |
| The Landscape of an Optimization Problem | p. 662 |
| The Metropolis Algorithm and Simulated Annealing | p. 666 |
| An Application of Local Search to Hopfield Neural Networks | p. 671 |
| Maximum-Cut Approximation via Local Search | p. 676 |
| Choosing a Neighbor Relation | p. 679 |
| Classification via Local Search | p. 681 |
| Best-Response Dynamics and Nash Equilibria | p. 690 |
| Solved Exercises | p. 700 |
| Exercises | p. 702 |
| Notes and Further Reading | p. 705 |
| Randomized Algorithms | p. 707 |
| A First Application: Contention Resolution | p. 708 |
| Finding the Global Minimum Cut | p. 714 |
| Random Variables and Their Expectations | p. 719 |
| A Randomized Approximation Algorithm for MAX 3-SAT | p. 724 |
| Randomized Divide and Conquer: Median-Finding and Quicksort | p. 727 |
| Hashing: A Randomized Implementation of Dictionaries | p. 734 |
| Finding the Closest Pair of Points: A Randomized Approach | p. 741 |
| Randomized Caching | p. 750 |
| Chernoff Bounds | p. 758 |
| Load Balancing | p. 760 |
| Packet Routing | p. 762 |
| Background: Some Basic Probability Definitions | p. 769 |
| Solved Exercises | p. 776 |
| Exercises | p. 782 |
| Notes and Further Reading | p. 793 |
| Epilogue: Algorithms That Run Forever | p. 795 |
| References | p. 805 |
| Index | p. 815 |
| Table of Contents provided by Ingram. All Rights Reserved. |
| Condition | Source | Price | |
|---|---|---|---|
|
New (184 available)
Ships Separately |
Ships separately from Better World Books suppliers | $258.04 USD | Add To Cart |
|
eBook Obtain a digital book from our friends at eBooks.com.
|
Digital edition from eBooks.com | {{ebooksDotComPrice}} {{ebooksDotComCurrency}} | eBooks.com |
|
Audio Book Obtain a digital book from our friends at AudiobooksNow.com.
|
|
{{audioBooksNowPrice}} {{audioBooksNowCurrency}} | Audiobook |
*This is a limited preview of the contents of this book and does not directly represent the item available for sale.*
You are now leaving the Better World Books website to complete your transaction. Your eBook download will be facilitated by our friends at eBooks.com. Thank you for your support and for shopping with Better World Books!
You are now leaving the Better World Books website to complete your transaction. Your audio book download will be facilitated by our friends at AudiobooksNow.com. Thank you for your support and for shopping with Better World Books!
You are now leaving the Better World Books website. Thank you for your support and for shopping with Better World Books!