算法設(shè)計(jì)

出版時(shí)間:2006-1  出版社:清華大學(xué)出版社  作者:[美]克菜因伯格(KleinbergJ.)évaTardos  頁數(shù):838  
Tag標(biāo)簽:無  

內(nèi)容概要

  《算法設(shè)計(jì)》(影印版)是近年來關(guān)于算法設(shè)計(jì)和分析的不可多得的優(yōu)秀教材?!端惴ㄔO(shè)計(jì)》(影印版)圍繞算法設(shè)計(jì)技術(shù)組織素材,對每種算法技術(shù)選擇了多個典型范例進(jìn)行分析?!端惴ㄔO(shè)計(jì)》(影印版)將直觀性與嚴(yán)謹(jǐn)性完美地結(jié)合起來。每章從實(shí)際問題出發(fā),經(jīng)過具體、深入、細(xì)致的分析,自然且富有啟發(fā)性地引出相應(yīng)的算法設(shè)計(jì)思想,并對算法的正確性、復(fù)雜性進(jìn)行恰當(dāng)?shù)姆治觥⒄撟C?!端惴ㄔO(shè)計(jì)》(影印版)覆蓋的面較寬,凡屬串行算法的經(jīng)典論題都有涉及,并且論述深入有新意。全書共200多道豐富而精彩的習(xí)題是《算法設(shè)計(jì)》(影印版)的重要組成部分,也是《算法設(shè)計(jì)》(影印版)的突出特色之一。

作者簡介

  Jon Kleinberg is a professor of Computer Science at Cornell
University. He received his Ph.D. from M.I.T. in 1996. He is the
recipient of an NSF Career Award, an ONR Young Investigator Award,
an IBM Outstanding Innovation Award, the National Academy of
Sciences Award for Initiatives in Research, research fellowships
from the Packard and Sloan Foundations, and teaching awards from
the Cornell Engineering College and Computer Science
Department.
  Kleinberg's research is centered around algorithms, particularly
those concerned with the structure of networks and information, and
with applications to information science, optimization, data
mining, and computational biology. His work on network analysis
using hubs and authorities helped form the foundation for the
current generation of Intern

書籍目錄

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

章節(jié)摘錄

版權(quán)頁:   插圖:   2.5 A More Complex Data Structure:Priority Queues Our primary goal in this book was expressed at the outset of the chapter:we seek algorithms that improve qualitatively on brute-force search,and in general we use polynomial-time solvability as the concrete formulation of this."pically,achieving a polynomial-time solution to a nontrivial problem is not something that depends on fine-grained implementation details; rather,the difference between exponential and polynomial is based on overcoming higher-level obstacles.Once one has an efficient algorithm to solve a problem,however,it is often possible to achieve further improvements in running time by being careful with the implementation details,and sometimes by using more complex data structures. Some complex data structures are essentially tailored for use in a single kind of algorithm,while others are more generally applicable.In this section,we describe one of the most broadly useful sophisticated data structures,the priority queue.Priority queues will be useful when we describe how to implement some of the graph algorithms developed later in the book.For our purposes here,it is a useful illustration of the analysis of a data structure that,unlike lists and arrays,must perform some nontrivial processing,each time it is invoked. The Problem In the implementation of the Stable Matching algorithm in Section 2.3,we discussed the need to maintain a dynamically changing set S (such as the set of all free men in that case).In such situations,we want to be able to add elements to and delete elements from the set S,and we want to be able to select an element from S when the algorithm calls for it.A priority queue is designed for applications in which elements have a priority value,or key,and each time we need to select an element from S,we want to take the one with highest priority.

編輯推薦

《算法設(shè)計(jì)》(影印版)為英文原版教材,圍繞算法設(shè)計(jì)技術(shù)組織素材,對每種算法技術(shù)選擇了多個典型范例進(jìn)行分析。    《算法設(shè)計(jì)》(影印版)適用于本科高年級學(xué)生以及研究生算法課的教材,也很適于具有計(jì)算機(jī)或相近專業(yè)本科水平的人自學(xué)算法的需要。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    算法設(shè)計(jì) PDF格式下載


用戶評論 (總計(jì)13條)

 
 

  •   紙張質(zhì)量明顯不如第一次印刷。強(qiáng)烈建議在書的說明上標(biāo)出是第多少次印刷。我發(fā)現(xiàn)一個規(guī)律:在國內(nèi),即使是正規(guī)的出版社的正規(guī)出版物,在多次印刷之后,紙張和墨的質(zhì)量都會下降。
  •   剛看了一點(diǎn),感覺不錯??墒怯⑽陌娴目雌饋硖?,經(jīng)常看了下句忘了上句,愁!
  •   卓越買的書沒失望過。我是單從書的質(zhì)量上講啊。不是內(nèi)容。至于內(nèi)容,先保留評價(jià)。
  •   書質(zhì)量很好,字體清晰,
  •   針對本科的算法學(xué)習(xí)。系統(tǒng)地講述了提出問題、分析問題、設(shè)計(jì)算法、分析算法的完整的解決問題的思路,體現(xiàn)了嚴(yán)密的邏輯,側(cè)重于解決問題能力的培養(yǎng),而不是像本國教材一樣側(cè)重于講授算法。
  •   英文影印的,經(jīng)典,還可以,希望能多推薦一些計(jì)算機(jī)有關(guān)的書
  •   很實(shí)用 學(xué)會各種算法的必備書
  •   跟<算法導(dǎo)論>配套著看.
  •   哎,搬了個地方送貨速度就慢下來了,急著用,也就不換了,,,書都磨損了。
  •   一般的影印版,還行吧。。一般的影印版,還行吧。。
  •   第一章的婚姻匹配問題把我吸引了,之后愛不釋手
  •   作者是網(wǎng)頁排序算法HITS的發(fā)明者,網(wǎng)絡(luò)流那章講的比較好,其它的寫的都挺不錯的,不過不建議初學(xué)者選這本書。
  •   對算法的講解深入淺出,讓你知道算法設(shè)計(jì)的前因后果,是一本好書!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7