Algorithm Design / Edition 1

Hardcover (Print)
Rent from
(Save 83%)
Est. Return Date: 06/20/2014
Buy New
Buy New from
Buy Used
Buy Used from
(Save 39%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $83.92
Usually ships in 1-2 business days
(Save 46%)
Other sellers (Hardcover)
  • All (17) from $83.92   
  • New (9) from $102.56   
  • Used (8) from $83.92   


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.

Read More Show Less

Product Details

  • ISBN-13: 9780321295354
  • Publisher: Addison-Wesley
  • Publication date: 3/18/2005
  • Series: Alternative eText Formats Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 864
  • Sales rank: 717,633
  • Product dimensions: 8.10 (w) x 9.20 (h) x 1.30 (d)

Table of Contents

Algorithm Design
Jon Kleinberg and Eva Tardos

Table of Contents

1 Introduction: Some Representative Problems

1.1 A First Problem: Stable Matching

1.2 Five Representative Problems
Solved Exercises
Notes and Further Reading

2 Basics of Algorithms Analysis

2.1 Computational Tractability

2.2 Asymptotic Order of Growth Notation

2.3 Implementing the Stable Matching Algorithm using Lists and Arrays

2.4 A Survey of Common Running Times

2.5 A More Complex Data Structure: Priority Queues

Solved Exercises
Notes and Further Reading

3 Graphs

3.1 Basic Definitions and Applications

3.2 Graph Connectivity and Graph Traversal
3.3 Implementing Graph Traversal using Queues and Stacks
3.4 Testing Bipartiteness: An Application of Breadth-First Search
3.5 Connectivity in Directed Graphs
3.6 Directed Acyclic Graphs and Topological Ordering
Solved Exercises
Notes and Further Reading

4 Greedy Algorithms
4.1 Interval Scheduling: The Greedy Algorithm Stays Ahead
4.2 Scheduling to Minimize Lateness: An Exchange Argument
4.3 Optimal Caching: A More Complex Exchange Argument
4.4 Shortest Paths in a Graph
4.5 The Minimum Spanning Tree Problem
4.6 Implementing Kruskal's Algorithm: The Union-Find Data Structure
4.7 Clustering
4.8 Huffman Codes and the Problem of Data Compression
*4.9 Minimum-Cost Arborescences: A Multi-Phase Greedy Algorithm
Solved Exercises
Notes and Further Reading

5 Divide and Conquer
5.1 A First Recurrence: The Mergesort Algorithm
5.2 Further Recurrence Relations
5.3 Counting Inversions
5.4 Finding the Closest Pair of Points
5.5 Integer Multiplication
5.6 Convolutions and The Fast Fourier Transform
Solved Exercises
Notes and Further Reading

6 Dynamic Programming
6.1 Weighted Interval Scheduling: A Recursive Procedure
6.2 Weighted Interval Scheduling: Iterating over Sub-Problems
6.3 Segmented Least Squares: Multi-way Choices
6.4 Subset Sums and Knapsacks: Adding a Variable
6.5 RNA Secondary Structure: Dynamic Programming Over Intervals
6.6 Sequence Alignment
6.7 Sequence Alignment in Linear Space
6.8 Shortest Paths in a Graph
6.9 Shortest Paths and Distance Vector Protocols
*6.10 Negative Cycles in a Graph

Solved Exercises
Notes and Further Reading

7 Network Flow
7.1 The Maximum Flow Problem and the Ford-Fulkerson Algorithm
7.2 Maximum Flows and Minimum Cuts in a Network
7.3 Choosing Good Augmenting Paths
*7.4 The Preflow-Push Maximum Flow Algorithm
7.5 A First Application: The Bipartite Matching Problem
7.6 Disjoint Paths in Directed and Undirected Graphs
7.7 Extensions to the Maximum Flow Problem
7.8 Survey Design
7.9 Airline Scheduling
7.10 Image Segmentation
7.11 Project Selection
7.12 Baseball Elimination
*7.13 A Further Direction: Adding Costs to the Matching Problem
Solved Exercises
Notes and Further Reading

8 NP and Computational Intractability
8.1 Polynomial-Time Reductions

8.2 Reductions via "Gadgets": The Satisfiability Problem
8.3 Efficient Certification and the Definition of NP
8.4 NP-Complete Problems
8.5 Sequencing Problems
8.6 Partitioning Problems
8.7 Graph Coloring
8.8 Numerical Problems
8.9 Co-NP and the Asymmetry of NP
8.10 A Partial Taxonomy of Hard Problems
Solved Exercises
Notes and Further Reading

9 PSPACE: A Class of Problems Beyond NP
9.2 Some Hard Problems in PSPACE
9.3 Solving Quantified Problems and Games in Polynomial Space
9.4 Solving the Planning Problem in Polynomial Space
9.5 Proving Problems PSPACE-Complete
Solved Exercises
Notes and Further Reading

10 Extending the Limits of Tractability
10.1 Finding Small Vertex Covers
10.2 Solving NP-Hard Problem on Trees
10.3 Coloring a Set of Circular Arcs
*10.4 Tree Decompositions of Graphs
*10.5 Constructing a Tree Decomposition
Solved Exercises
Notes and Further Reading

11 Approximation Algorithms
11.1 Greedy Algorithms and Bounds on the Optimum: A Load Balancing Problem
11.2 The Center Selection Problem
11.3 Set Cover: A General Greedy Heuristic
11.4 The Pricing Method: Vertex Cover
11.5 Maximization via the Pricing method: The Disjoint Paths Problem
11.6 Linear Programming and Rounding: An Application to Vertex Cover
*11.7 Load Balancing Revisited: A More Advanced LP Application
11.8 Arbitrarily Good Approximations: the Knapsack Problem
Solved Exercises
Notes and Further Reading

12 Local Search
12.1 The Landscape of an Optimization Problem
12.2 The Metropolis Algorithm and Simulated Annealing
12.3 An Application of Local Search to Hopfield Neural Networks
12.4 Maximum Cut Approximation via Local Search
12.5 Choosing a Neighbor Relation
*12.6 Classification via Local Search
12.7 Best-Response Dynamics and Nash Equilibria
Solved Exercises
Notes and Further Reading

13 Randomized Algorithms
13.1 A First Application: Contention Resolution
13.2 Finding the Global Minimum Cut
13.3 Random Variables and their Expectations
13.4 A Randomized Approximation Algorithm for MAX 3-SAT
13.5 Randomized Divide-and-Conquer: Median-Finding and Quicksort
13.6 Hashing: A Randomized Implementation of Dictionaries
13.7 Finding the Closest Pair of Points: A Randomized Approach
13.8 Randomized Caching
13.9 Chernoff Bounds
13.10 Load Balancing
*13.11 Packet Routing
13.12 Background: Some Basic Probability Definitions
Solved Exercises
Notes and Further Reading

Epilogue: Algorithms that Run Forever



Read More Show Less

Customer Reviews

Average Rating 5
( 1 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted July 30, 2005

    dealing with NP completeness

    The text offers an interesting blend of rigour and informality. The numerous proofs in each chapter have that rigour. Yet what may be more important is how the text remains accessible to a primarily undergraduate audience. The book is not just a compendium of common algorithms in computer science, and proofs about them. The authors place a stronger emphasis on motivating how to develop an intuitive understanding of the problems that the algorithms address, and of how to shape new algorithms. Or, possibly, apply or modify existing algorithms to new problems. If you compare the text to Knuth's classic 'Art of Computer Programming', then you might find Kleinberg and Tardos more accessible. (At least for undergraduate readership.) Also, the extensive exercises at the end of each chapter often have contexts germane to the Web. For example, the links in web pages are used to motivate problems in graph theory, where we have directed (unidirectional) graphs, due to the one way nature of links. More generally, the recent, contextual nature of the problems may appeal to some students. Knuth had many exercises listed in his books, but they can be too abstract for most students. The text also has a very interesting chapter on NP problems. The authors address a very practical situation. Even if you find that you have a problem that is NP complete, it is not necessarily the end of the story. For real life reasons, you may have to find an approximate solution that is computationally feasible to evaluate. The chapter offers suggestions and examples that may be of help. (More formal texts might merely stop at proving NP completeness.)

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)