注重体验与质量的电子书资源下载网站
分类于: 其它 云计算&大数据
简介
算法设计 豆 9.0分
资源最后更新于 2020-07-25 14:08:51
作者:[美]克菜因伯格
出版社:清华大学出版社
出版日期:2006-01
ISBN:9787302122609
文件格式: pdf
标签: 算法 algorithm 计算机科学 算法设计 计算机 编程 algorithms programming
简介· · · · · ·
《大学计算机教育国外著名教材系列:算法设计(影印版)》是近年来关于算法设计和分析的不可多得的优秀教材。《大学计算机教育国外著名教材系列:算法设计(影印版)》围绕算法设计技术组织素材,对每种算法技术选择了多个典型范例进行分析。《大学计算机教育国外著名教材系列:算法设计(影印版)》将直观性与严谨性完美地结合起来。每章从实际问题出发,经过具体、深入、细致的分析,自然且富有启发性地引出相应的算法设计思想,并对算法的正确性、复杂性进行恰当的分析、论证。《大学计算机教育国外著名教材系列:算法设计(影印版)》覆盖的面较宽,凡属串行算法的经典论题都有涉及,并且论述深入有新意。全书共200多道丰富而精彩的习题是《大学计算机教育国外著名教材系列:算法设计(影印版)》的重要组成部分,也是《大学计算机教育国外著名教材系列:算法设计(影印版)》的突出特色之一。
目录
About the Authors
Preface
Introduction: Some Representative Problems
1.1 A First Problem: Stable Matching
1.2 Five Representative Problems
Solved Exercises
Exercises
Notes and Further Reading
Basics of Algorithm Ana/ys/s
2.1 Computational Tractability
2.2 Asymptotic Order of Growth
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
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 Bipaniteness: An Application of Breadth-First Search
3.5 Connectivity in Directed Graphs
3.6 Directed Acyclic Graphs and Topological Ordering
Solved Exercises
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 Data Compression
* 4.9 Minimum-Cost Arborescences: A Multi-Phase Greedy Algorithm
Solved Exercises
Exercises
Notes and Further Reading
5 D/v/de and Corn/net
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
Exercises
Notes and Further Reading
6 Dynamic Programming
6.1 Weighted Interval Scheduling: A Recursive Procedure
6.2 Principles of Dynamic Programming: Memoization or Iteration over Subproblems
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 via Divide and Conquer
6.8 Shortest Paths in a Graph
6.9 Shortest Paths and Distance Vector Protocols
* 6.10 Negative Cycles in a Graph
Solved Exercises
Exercises
Notes and Further Reading
Network Flora
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.1.3 A Further Direction: Adding Costs to the Matching Problem Solved Exercises
Exercises
Notes and Further Reading
NP and Computational Intractability
8.1 Polynomial-Time Reductions
8.2 Reductions via "Gadgets": The Safisfiability 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
Exercises
Notes and Further Reading
9 PSPACE: A Class of Problems beyond NP
9.1 PSPACE
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
Exercises
Notes and Further Reading
10 Extending the Limits of Tractability
10.1 Finding Small Vertex Covers
10.2 Solving NP-Hard Problems on Trees
10.3 Coloring a Set of Circular Arcs
* 10.4 Tree Decompositions of Graphs
* 10.5 Constructing a Tree Decomposition
Solved Exercises
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
Exercises
Notes and Further Reading
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
Exercises
Notes and Further Reading
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
Exercises
Notes and Further Reading
Epilogue: Algorithms That Run Forever
References
Index
Preface
Introduction: Some Representative Problems
1.1 A First Problem: Stable Matching
1.2 Five Representative Problems
Solved Exercises
Exercises
Notes and Further Reading
Basics of Algorithm Ana/ys/s
2.1 Computational Tractability
2.2 Asymptotic Order of Growth
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
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 Bipaniteness: An Application of Breadth-First Search
3.5 Connectivity in Directed Graphs
3.6 Directed Acyclic Graphs and Topological Ordering
Solved Exercises
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 Data Compression
* 4.9 Minimum-Cost Arborescences: A Multi-Phase Greedy Algorithm
Solved Exercises
Exercises
Notes and Further Reading
5 D/v/de and Corn/net
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
Exercises
Notes and Further Reading
6 Dynamic Programming
6.1 Weighted Interval Scheduling: A Recursive Procedure
6.2 Principles of Dynamic Programming: Memoization or Iteration over Subproblems
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 via Divide and Conquer
6.8 Shortest Paths in a Graph
6.9 Shortest Paths and Distance Vector Protocols
* 6.10 Negative Cycles in a Graph
Solved Exercises
Exercises
Notes and Further Reading
Network Flora
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.1.3 A Further Direction: Adding Costs to the Matching Problem Solved Exercises
Exercises
Notes and Further Reading
NP and Computational Intractability
8.1 Polynomial-Time Reductions
8.2 Reductions via "Gadgets": The Safisfiability 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
Exercises
Notes and Further Reading
9 PSPACE: A Class of Problems beyond NP
9.1 PSPACE
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
Exercises
Notes and Further Reading
10 Extending the Limits of Tractability
10.1 Finding Small Vertex Covers
10.2 Solving NP-Hard Problems on Trees
10.3 Coloring a Set of Circular Arcs
* 10.4 Tree Decompositions of Graphs
* 10.5 Constructing a Tree Decomposition
Solved Exercises
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
Exercises
Notes and Further Reading
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
Exercises
Notes and Further Reading
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
Exercises
Notes and Further Reading
Epilogue: Algorithms That Run Forever
References
Index