我们为什么要学习算法?
正如大名鼎鼎的Polya所说,为的是在遇到问题时,我们知道"How to solve it!"
对于每一个算法都有这样的一个过程:设计 --> 证明 --> 应用;而我们学习算法其实也是对这三个方面有着不同的侧重。如果你更关系证明与应用,很遗憾这本书应该不太符合你的口味~
这本书完全没有定义-定理-证明的套路,取而代之的是思想上的演绎!换而言之,这本书所讲的内容都是每一个算法设计者在设计初期时脑子里所思考的内容,每个算法背后的历史。不得不说,三位作者算法功力之深,理解之深刻,实在令人赞叹。正因为如此,这本书才会如此之薄。阅读之时常有顿悟之感!好不畅快~
作者们似乎很注重Problem Solving的过程,本书的所有章节基本上的都是以一种Problem --> Solution --> Algorithm Design/Mathematics Model的模式展开的,这才是一个计算机研究者的思想方式。正因为如此,所需要展示的Problem不需要太多,所涉及的算法也不需要像CLRS那样一一列举比较,也没有像KT那样“定理,证明"的严谨,一切所需要的只是idea!
薄薄的一本书虽然没有多少章节,然作者们却为我们搭建好了整个算法世界的框架:
(1) Classical algorithm and technique:
Arithmetic algorithm
Divide-and-conquer method
Graph algorithm
Greedy method
(2) Programming
Dynamic Programming
Linear Programming
(3) Complexity theory
P, NP, NPC
(4) Coping with NPC
Randomized algorithm
Approximation algorithm
Searching
(5) Future
Quantum algorithm
以及所有所涉及的数学领域:
Number theory
Graph theory
Game theory
Cryptography
Linear Programming
Algorithm analysis & Complexity theory
本书的习题也是精心安排设计的(从NPC那章的习题都是选自Karp's 21 NP-complete problems就可见一斑),极其精彩。融入这么多的内容的同时也带来的一个问题:对于算法的初学者来说,很可能不能真正把握作者字字句句背后真正所体现的思考的深度,简简单单的一句话背后,也许是另一个崭新的世界,所以这本书应该随着算法学习的深入,反复阅读,享受这探索的乐趣。
P.S.
书中点睛之笔:
FFT
Dijkstra's algorithm
Dynamic programming
Duality and Zero-sum games
Simplex algorithm
Reductions
Quantum algorithm
DPV:算法的历史与未来
对“DPV:算法的历史与未来”的回应
《Algorithms》热门书评
-
算法之美
485有用 7无用 etone 2008-03-14
这是本很新的书,06年末发行,07年才慢慢出现于人们的视野。我在08年初得知这本书,那会我还很奇怪:都什么年月了,怎么还有人写算法教材——这么“经典”的工作,不是上个世纪就被人做完了吗。读了这本Algorithms,我才知道:这才是我心中的算法书,我等待这样一本书已经很多年了。它的确当得起这个名字。...
-
CLRS不应该是《Algorithms》的补充读物
41有用 2无用 [已注销] 2008-11-26
CLRS不应该是《Algorithms》(这本书会不会简称为DPV?)的补充读物,而应该是学习算法的主要入门教材。换句话说,《Algorithms》并不适合初学者阅读,因为它的简洁精炼,因为它的教学背景,也因为它的undercurrents。DPV不是传统意义上的算法教材,许多算法的经典内容在这里都...
-
原课程主页
13有用 0无用 让心飞一会儿 2012-03-04
Umesh V. Vazirani 06年berkeley 以这本书为教材开设的algorithms课程主页http://www-inst.eecs.berkeley.edu/~cs170/fa06/算法书不是用来看的,是用来学的...
-
翻译有点问题
12有用 0无用 corpsefire 2009-08-18
虽然读起来比较通顺,不过有些地方把意思弄错了。比如第152页"在find(K)之后执行find(I)",原文为"find(I) followed by find(K)",正好弄反了再比如104页“按照顶点的post值的降序,简单地对图顶点执行深度优先搜索即可”...
-
写给自己的算法读书笔记
4有用 0无用 轩雨筱纯爷们儿 2013-12-05
第0章 本章较为简短,没有深入系统地涉及某些内容。主要以Fibonacci数列的例子,让我体会了递归和递推思想的差别。针对Fibonacci数列例子直接递归解法中涉及的重复计算,优化出递推方式,展示了思考问...
书名: Algorithms
作者:
出版社: McGraw-Hill Science/Engineering/Math
出版年: 2006-9-13
页数: 336
定价: $ 60.46
装帧: Paperback
ISBN: 9780073523408