具体描述
《大学计算机教育国外著名教材系列:算法设计(影印版)》是近年来关于算法设计和分析的不可多得的优秀教材。《大学计算机教育国外著名教材系列:算法设计(影印版)》围绕算法设计技术组织素材,对每种算法技术选择了多个典型范例进行分析。《大学计算机教育国外著名教材系列:算法设计(影印版)》将直观性与严谨性完美地结合起来。每章从实际问题出发,经过具体、深入、细致的分析,自然且富有启发性地引出相应的算法设计思想,并对算法的正确性、复杂性进行恰当的分析、论证。《大学计算机教育国外著名教材系列:算法设计(影印版)》覆盖的面较宽,凡属串行算法的经典论题都有涉及,并且论述深入有新意。全书共200多道丰富而精彩的习题是《大学计算机教育国外著名教材系列:算法设计(影印版)》的重要组成部分,也是《大学计算机教育国外著名教材系列:算法设计(影印版)》的突出特色之一。
作者简介
目录信息
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
· · · · · · (收起)
读后感
个人因为此书排版(中文版)层次主次均不分明,文字翻译的让人不着头脑,不过原书确实具有很大的启发性,同时个人觉得写的似乎有些冗余,不够精炼,不如<alg0rithms>,总体上来说就是:翻译的不好,原文比较具有引导性;推荐新学的童鞋们可以浏览一下,重点可以放在《导论》或者...
cornell的教材。比起MIit的圣经,《算法设计》更侧重算法设计思路,不再赘述算法复杂度的分析。建议先看算法导论再看这个书,颇有推理之旅的感觉。 最后的扩展部分,包括PSPACE问题,参数复杂性,也很有趣味。如果算法导论是普及,算法设计更循循善诱如何这些算法。 只有在无以...
个人觉得“算法设计”比“算法导论”好。 1. 纸更好,看起来舒服多了。 2. “算法导论”太详细了,如果纠结与细节经常导致失去重点。“算法设计”只有关键的过程证明,反而容易掌握重点。 我是先看到“算法导论”后看的“算法设计”,看“算法设计”的时候还是很享受这本书的...
个人觉得“算法设计”比“算法导论”好。 1. 纸更好,看起来舒服多了。 2. “算法导论”太详细了,如果纠结与细节经常导致失去重点。“算法设计”只有关键的过程证明,反而容易掌握重点。 我是先看到“算法导论”后看的“算法设计”,看“算法设计”的时候还是很享受这本书的...
By reading Algorithm Design, not only can you learn the modern algorithms used frequently in programming, it is also a good literature writing for the beautiful English in this book. It's worth your money and time to study multi times.
用户评价
这本书的排版和设计本身就透露出一种对读者的尊重。字体选择清晰易读,图表的质量极高,信息图表的设计简洁明了,几乎不需要额外的解释就能理解其核心含义。但这并非一本“看起来很美”的空壳书,其内容本身才是真正的核心竞争力。最让我欣赏的是,作者在每一章末尾设置的“自省环节”,这些问题往往不是让你回忆刚刚学到的定义,而是要求你运用新知去批判性地审视现有的某些主流观点。这使得阅读过程从单向的知识接收,转化成了双向的思考对话。我时常需要合上书本,在笔记本上写下自己的初步答案,再回去对照作者提供的视角。这种主动参与感,极大地提高了信息的留存率。它不仅让我学到了新东西,更重要的是,它重塑了我学习新知识的方法论,让我期待未来去挑战更多结构复杂、逻辑严密的著作。
这本书的阅读体验简直是场思想的探险,作者的叙事方式如同一个经验丰富的向导,引领我们穿梭在知识的丛林之中。书中的每一个章节都像是一个精心设计的迷宫,充满了意想不到的转折和深邃的哲思。我尤其欣赏作者对于复杂概念的解构能力,他没有采用枯燥的说教,而是将抽象的理论巧妙地融入到引人入胜的故事和生动的比喻之中。初读时,我感觉自己像是在仰望一座巍峨的高山,有些望而生畏,但随着深入,我发现山间的小径其实铺设得非常平坦,每一步都有清晰的指示。这本书的结构布局极为巧妙,前后的呼应自然流畅,仿佛一幅徐徐展开的宏大画卷,让人在阅读的过程中不断产生“原来如此”的顿悟感。它不仅仅是在传授知识,更是在培养一种看待世界和解决问题的独特视角,这种潜移默化的影响,远比直接的知识灌输来得更为深刻和持久。读完合上书本的那一刻,心中涌起的不是知识被填满的满足,而是一种对未知领域更强烈的探索欲被激发出来的兴奋。
这本书最让我着迷的地方,在于它对“过程”的细腻描绘,而非仅仅停留在最终的结果展示上。作者仿佛是一位技艺精湛的工匠,他不仅仅是展示了最终的成品——那些优雅的理论模型,更重要的是,他把制作工具、选择材料、甚至是在哪个步骤遇到了瓶颈和如何突破的过程,都描绘得淋漓尽致。这种“手把手”的教学风格,对于像我这样偏爱实践操作的读者来说,简直是久旱逢甘霖。书中穿插的那些案例分析,并非是教科书式的空洞陈述,而是充满了真实世界的复杂性和不确定性。每一次成功的推导背后,都伴随着几次失败的尝试和深刻的教训,这种真实感极大地拉近了理论与现实的距离。它教会我的不仅是“做什么”,更是“为什么这样做”,以及在面对新问题时,应该如何构建自己的解决框架。读完后,我感觉自己手里多了一套全新的、经过实战检验的思维工具箱。
我必须坦诚,这本书的内容深度对我来说是一次不小的挑战,但挑战本身正是其魅力所在。它的文字密度极高,每一个句子都似乎经过了反复的锤炼,信息量大到需要我时不时地停下来,反复咀嚼才能真正消化吸收。这不像是一本轻松愉快的读物,更像是一部需要全神贯注去“解码”的文本。作者的论证逻辑严密到令人敬畏,他似乎预见到了读者可能产生的每一个疑问,并在随后的段落中给出滴水不漏的解答或反驳。阅读这本书的过程,更像是参与一场顶级的学术辩论,你需要时刻保持警醒,跟上作者那近乎疾驰的思维速度。我发现自己不得不频繁地在书页间来回翻阅,做大量的批注和标记,这本被我翻得卷了边的书,记录着我与作者思想交锋的痕迹。这种高强度的脑力激荡,虽然累人,但带来的思维上的蜕变感却是无与伦比的,它强迫我跳出原有的思维定式,去思考那些我从未敢触碰的边界。
我很少读到一本能够如此有效地平衡学术严谨性与人文关怀的书籍。这本书的基调非常沉稳大气,它似乎在提醒我们,在追逐效率和精确性的同时,不能忘记那些支撑起整个知识体系的底层哲学和道德考量。作者在论述技术性内容时,语气是坚定的、不容置疑的,但当他触及到这些知识可能带来的社会影响时,笔锋一转,变得谦逊而审慎。这种张弛有度的文风,让阅读体验极其舒适,它不会让人因为过于技术性的内容而感到枯燥,也不会因为过于哲思而显得飘忽不定。书中引用的一些历史典故和跨学科的联系,更是让人眼前一亮,仿佛在浩瀚的知识星空中,发现了一颗连接不同星座的隐形光束。它让我意识到,任何一个领域都不是孤立存在的,理解世界需要一个更加宏大和包容的视野。
力荐,哪怕是将来不做计算机,也会有所启发
当年本科算法客的教材。说来可笑,研究生算法课用书居然是这本,“算法设计与分析”,http://book.douban.com/subject/1400350/
康奈尔大学欲与mit的算法导论抗衡的书,代码上没有导论那么详细,但是循循善诱娓娓道来,读起来更有趣味。比较喜欢。
力荐,哪怕是将来不做计算机,也会有所启发
最为突出设计思路的算法教材,堪称经典。