算法导论(原书第3版)

当前位置:首页 > 计算机网络 > 研究生/本科/专科教材 > 算法导论(原书第3版)

出版社:机械工业出版社华章分社
出版日期:2012-12
ISBN:9787111407010
作者:Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein
页数:780页

作者简介

在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。
全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。
第3版的主要变化:
新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录。
修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。
移除两章很少讲授的内容:二项堆和排序网络。
修订了动态规划和贪心算法相关内容。
流网络相关材料现在基于边上的全部流。
由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。
修改了对Knuth-Morris-Pratt字符串匹配算法的讨论。
新增100道练习和28道思考题,还更新并补充了参考文献。

书籍目录

出版者的话
译者序
前言
第一部分 基础知识
第1章 算法在计算中的作用 3
1.1 算法 3
1.2 作为一种技术的算法 6
思考题 8
本章注记 8
第2章 算法基础 9
2.1 插入排序 9
2.2 分析算法 13
2.3 设计算法 16
2.3.1 分治法 16
2.3.2 分析分治算法 20
思考题 22
本章注记 24
第3章 函数的增长 25
3.1 渐近记号 25
3.2 标准记号与常用函数 30
思考题 35
本章注记 36
第4章 分治策略 37
4.1 最大子数组问题 38
4.2 矩阵乘法的Strassen算法 43
4.3 用代入法求解递归式 47
4.4 用递归树方法求解递归式 50
4.5 用主方法求解递归式 53
4.6 证明主定理 55
4.6.1 对b的幂证明主定理 56
4.6.2 向下取整和向上取整 58
思考题 60
本章注记 62
第5章 概率分析和随机算法 65
5.1 雇用问题 65
5.2 指示器随机变量 67
5.3 随机算法 69
5.4 概率分析和指示器随机变量的进一步使用 73
5.4.1 生日悖论 73
5.4.2 球与箱子 75
5.4.3 特征序列 76
5.4.4 在线雇用问题 78
思考题 79
本章注记 80
第二部分 排序和顺序统计量
第6章 堆排序 84
6.1 堆 84
6.2 维护堆的性质 85
6.3 建堆 87
6.4 堆排序算法 89
6.5 优先队列 90
思考题 93
本章注记 94
第7章 快速排序 95
7.1 快速排序的描述 95
7.2 快速排序的性能 97
7.3 快速排序的随机化版本 100
7.4 快速排序分析 101
7.4.1 最坏情况分析 101
7.4.2 期望运行时间 101
思考题 103
本章注记 106
第8章 线性时间排序 107
8.1 排序算法的下界 107
8.2 计数排序 108
8.3 基数排序 110
8.4 桶排序 112
思考题 114
本章注记 118
第9章 中位数和顺序统计量 119
9.1 最小值和最大值 119
9.2 期望为线性时间的选择算法 120
9.3 最坏情况为线性时间的选择算法 123
思考题 125
本章注记 126
第三部分 数据结构
第10章 基本数据结构 129
10.1 栈和队列 129
10.2 链表 131
10.3 指针和对象的实现 134
10.4 有根树的表示 137
思考题 139
本章注记 141
第11章 散列表 142
11.1 直接寻址表 142
11.2 散列表 143
11.3 散列函数 147
11.3.1 除法散列法 147
11.3.2 乘法散列法 148
11.3.3 全域散列法 148
11.4 开放寻址法 151
11.5 完全散列 156
思考题 158
本章注记 160
第12章 二叉搜索树 161
12.1 什么是二叉搜索树 161
12.2 查询二叉搜索树 163
12.3 插入和删除 165
12.4 随机构建二叉搜索树 169
思考题 171
本章注记 173
第13章 红黑树 174
13.1 红黑树的性质 174
13.2 旋转 176
13.3 插入 178
13.4 删除 183
思考题 187
本章注记 191
第14章 数据结构的扩张 193
14.1 动态顺序统计 193
14.2 如何扩张数据结构 196
14.3 区间树 198
思考题 202
本章注记 202
第四部分 高级设计和分析技术
第15章 动态规划 204
15.1 钢条切割 204
15.2 矩阵链乘法 210
15.3 动态规划原理 215
15.4 最长公共子序列 222
15.5 最优二叉搜索树 226
思考题 231
本章注记 236
第16章 贪心算法 237
16.1 活动选择问题 237
16.2 贪心算法原理 242
16.3 赫夫曼编码 245
16.4 拟阵和贪心算法 250
16.5 用拟阵求解任务调度问题 253
思考题 255
本章注记 257
第17章 摊还分析 258
17.1 聚合分析 258
17.2 核算法 261
17.3 势能法 262
17.4 动态表 264
17.4.1 表扩张 265
17.4.2 表扩张和收缩 267
思考题 270
本章注记 273
第五部分 高级数据结构
第18章 B树 277
18.1 B树的定义 279
18.2 B树上的基本操作 281
18.3 从B树中删除关键字 286
思考题 288
本章注记 289
第19章 斐波那契堆 290
19.1 斐波那契堆结构 291
19.2 可合并堆操作 292
19.3 关键字减值和删除一个结点 298
19.4 最大度数的界 300
思考题 302
本章注记 305
第20章 van Emde Boas树 306
20.1 基本方法 306
20.2 递归结构 308
20.2.1 原型van Emde Boas结构 310
20.2.2 原型van Emde Boas结构上的操作 311
20.3 van Emde Boas树及其操作 314
20.3.1 van Emde Boas树 315
20.3.2 van Emde Boas树的操作 317
思考题 322
本章注记 323
第21章 用于不相交集合的数据结构 324
21.1 不相交集合的操作 324
21.2 不相交集合的链表表示 326
21.3 不相交集合森林 328
21.4 带路径压缩的按秩合并的分析 331
思考题 336
本章注记 337
第六部分 图算法
第22章 基本的图算法 341
22.1 图的表示 341
22.2 广度优先搜索 343
22.3 深度优先搜索 349
22.4 拓扑排序 355
22.5 强连通分量 357
思考题 360
本章注记 361
第23章 最小生成树 362
23.1 最小生成树的形成 362
23.2 Kruskal算法和Prim算法 366
思考题 370
本章注记 373
第24章 单源最短路径 374
24.1 Bellman-Ford算法 379
24.2 有向无环图中的单源最短路径问题 381
24.3 Dijkstra算法 383
24.4 差分约束和最短路径 387
24.5 最短路径性质的证明 391
思考题 395
本章注记 398
第25章 所有结点对的最短路径问题 399
25.1 最短路径和矩阵乘法 400
25.2 Floyd-Warshall算法 404
25.3 用于稀疏图的Johnson算法 409
思考题 412
本章注记 412
第26章 最大流 414
26.1 流网络 414
26.2 Ford\Fulkerson方法 418
26.3 最大二分匹配 428
26.4 推送重贴标签算法 431
26.5 前置重贴标签算法 438
思考题 446
本章注记 449
第七部分 算法问题选编
第27章 多线程算法 453
27.1 动态多线程基础 454
27.2 多线程矩阵乘法 465
27.3 多线程归并排序 468
思考题 472
本章注记 476
第28章 矩阵运算 478
28.1 求解线性方程组 478
28.2 矩阵求逆 486
28.3 对称正定矩阵和最小二乘逼近 489
思考题 493
本章注记 494
第29章 线性规划 495
29.1 标准型和松弛型 499
29.2 将问题表达为线性规划 504
29.3 单纯形算法 507
29.4 对偶性 516
29.5 初始基本可行解 520
思考题 525
本章注记 526
第30章 多项式与快速傅里叶变换 527
30.1 多项式的表示 528
30.2 DFT与FFT 531
30.3 高效FFT实现 536
思考题 539
本章注记 541
第31章 数论算法 543
31.1 基础数论概念 543
31.2 最大公约数 547
31.3 模运算 550
31.4 求解模线性方程 554
31.5 中国余数定理 556
31.6 元素的幂 558
31.7 RSA公钥加密系统 561
31.8 素数的测试 565
31.9 整数的因子分解 571
思考题 574
本章注记 576
第32章 字符串匹配 577
32.1 朴素字符串匹配算法 578
32.2 Rabin\Karp算法 580
32.3 利用有限自动机进行字符串匹配 583
32.4 Knuth-Morris-Pratt算法 588
思考题 594
本章注记 594
第33章 计算几何学 595
33.1 线段的性质 595
33.2 确定任意一对线段是否相交 599
33.3 寻找凸包 604
33.4 寻找最近点对 610
思考题 613
本章注记 615
第34章 NP完全性 616
34.1 多项式时间 619
34.2 多项式时间的验证 623
34.3 NP完全性与可归约性 626
34.4 NP完全性的证明 633
34.5 NP完全问题 638
34.5.1 团问题 638
34.5.2 顶点覆盖问题 640
34.5.3 哈密顿回路问题 641
34.5.4 旅行商问题 644
34.5.5 子集和问题 645
思考题 647
本章注记 649
第35章 近似算法 651
35.1 顶点覆盖问题 652
35.2 旅行商问题 654
35.2.1 满足三角不等式的旅行商问题 654
35.2.2 一般旅行商问题 656
35.3 集合覆盖问题 658
35.4 随机化和线性规划 661
35.5 子集和问题 663
思考题 667
本章注记 669
第八部分 附录:数学基础知识
附录A 求和 672
A.1 求和公式及其性质 672
A.2 确定求和时间的界 674
思考题 678
附录注记 678
附录B 集合等离散数学内容 679
B.1 集合 679
B.2 关系 682
B.3 函数 683
B.4 图 685
B.5 树 687
B.5.1 自由树 688
B.5.2 有根树和有序树 689
B.5.3 二叉树和位置树 690
思考题 691
附录注记 692
附录C 计数与概率 693
C.1 计数 693
C.2 概率 696
C.3 离散随机变量 700
C.4 几何分布与二项分布 702
C.5 二项分布的尾部 705
思考题 708
附录注记 708
附录D 矩阵 709
D.1 矩阵与矩阵运算 709
D.2 矩阵基本性质 712
思考题 714
附录注记 715
参考文献 716
索引 732

编辑推荐

《算法导论(原书第3版)》编辑推荐:全球超过50万人阅读的算法圣经!算法标准教材,国内外1000余所高校采用。国内知名高校6位教授历时3年倾心翻译!

前言

前言Introduction to Algorithms,Third Edition在计算机出现之前,就有了算法。现在有了计算机,就需要更多的算法,算法是计算的核心。本书提供了对当代计算机算法研究的一个全面、综合的介绍。书中给出了多个算法,并对它们进行了较为深入的分析,使得这些算法的设计和分析易于被各个层次的读者所理解。我们力求在不牺牲分析的深度和数学严密性的前提下,给出深入浅出的说明。书中每一章都给出了一个算法、一种算法设计技术、一个应用领域或一个相关的主题。算法是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得懂。书中给出了244幅图,说明各个算法的工作过程。我们强调将算法的效率作为一种设计标准,对书中的所有算法,都给出了关于其运行时间的详细分析。本书主要供本科生和研究生的算法或数据结构课程使用。因为书中讨论了算法设计中的工程问题及其数学性质,所以,本书也可以供专业技术人员自学之用。本书是第3版。在这个版本里,我们对全书进行了更新,包括新增了若干章、修订了伪代码等。致使用本书的教师本书的设计目标是全面、适用于多种用途。它可用于若干课程,从本科生的数据结构课程到研究生的算法课程。由于书中给出的内容比较多,只讲一学期一般讲不完,因此,教师们应该将本书看成是一种“缓存区”或“瑞典式自助餐”,从中挑选出能最好地支持自己希望教授的课程的内容。教师们会发现,要围绕自己所需的各个章节来组织课程是比较容易的。书中的各章都是相对独立的,因此,你不必担心意想不到的或不必要的各章之间的依赖关系。每一章都是以节为单位,内容由易到难。如果将本书用于本科生的课程,可以选用每一章的前面几节内容;用于研究生的课程中,则可以完整地讲授每一章。全书包含957道练习和158道思考题。每一节结束时给出练习,每一章结束时给出思考题。练习一般比较短,用于检查学生对书中内容的基本掌握情况。有一些是简单的自查性练习,有一些则要更充实,可以作为家庭作业布置给学生。每一章后的思考题都是一些叙述较为详细的实例研究,它们常常会介绍一些新的知识。一般来说,这些思考题都会包含几个小问题,引导学生逐步得到问题的解。鉴于本书前几版使用的反馈,我们在本书配套网站上公布了其中一些练习和思考题的答案(但不是全部),网址为http://mitpress.mit.edu/algorithms/。我们会定期更新这些答案,因此需要教师每次授课前都到这个网站上来查看。在那些不太适合本科生、更适合研究生的章节和练习前面,都加上了星号()。带星号的章节也不一定就比不带星号的更难,但可能要求了解更多的数学知识。类似地,带星号的练习可能要求有更好的数学背景或创造力。致使用本书的学生希望本教材能为学生们提供关于算法这一领域的有趣介绍。我们力求使书中给出的每一个算法都易于理解和有趣。为了在同学们遇到不熟悉或比较困难的算法时提供帮助,我们逐个步骤地描述每一个算法。此外,为了便于大家理解书中对算法的分析,对于其中所需的数学知识,我们给出了详细的解释。如果对某一主题已经有所了解,会发现根据书中各章的编排顺序,可以跳过一些介绍性的小节,直接阅读更高级的内容。本书是一本大部头著作,读者所修的课程可能只讲授其中的一部分。我们试图使它能成为一本现在对读者有用的教材,将来在读者的职业生涯中,也能成为一本案头的数学参考书或工程实践手册。阅读本书需要哪些预备知识呢?读者需要有一些程序设计方面的经验,尤其需要理解递归过程和简单的数据结构,如数组和链表。  读者应该能较为熟练地利用数学归纳法进行证明。书中有一些内容要求读者具备初等微积分方面的知识。除此之外,本书的第一部分和第八部分将介绍读者需要用到的所有数学技巧。我们收到读者的反馈,他们强烈希望提供练习和思考题的答案,为此,我们在http://mitpress.mit.edu/algorithms/这个网站上给出了少数练习和思考题的答案,读者可以根据我们的答案来检验自己的解答。致使用本书的专业技术人员本书涉及的主题非常广泛,因而是一本很好的算法参考手册。因为每一章都是相对独立的,所以读者可以重点查阅自己感兴趣的主题。在我们所讨论的算法中,多数都有着极大的实用价值。因此,我们在书中涉及了算法实现方面的考虑和其他工程方面的问题。对于那些为数不多的、主要具有理论研究价值的算法,通常还给出其实用的替代算法。如果希望实现这些算法中的任何一个,你会发现将书中的伪代码翻译成你熟悉的某种程序设计语言是一件相当直接的事。伪代码被设计成能够清晰、简明地描述每一个算法。因此,我们不考虑错误处理和其他需要对读者所用编程环境有特定假设的软件工程问题。我们力求简单而直接地给出每一个算法,而不会让某种特定程序设计语言的特殊性掩盖算法的本质内容。如果你是在课堂外使用本书,那么可能无法从教师那里得到答案来验证自己的解答,因此,我们在http://mitpress.mit.edu/algorithms/这个网站上给出了部分练习和思考题的答案,读者可以免费下载参考。致我们的同事我们在本书中给出了详尽的参考文献。每一章在结束时都给出了“本章注记”,介绍一些历史性的细节和参考文献。但是,各章的注记并没有提供整个算法领域的全部参考文献。有一点可能是让人难以置信的,就是在本书这样一本大部头中,由于篇幅的原因,很多有趣的算法都没能包括进来。尽管学生们发来了大量的请求,希望我们提供思考题和练习的解答,但我们还是决定基本上不提供思考题和练习的参考答案(少数除外),以打消学生们试图查阅答案,而不是自己动手得出答案的念头。第3版中所做的修改在本书的第2版和第3版之间有哪些变化呢?这两版之间的变化量和第2版与第1版之间的变化量相当,正如在第2版的变化中所说,这些变化可以说不太大,也可以说很大,具体要看读者怎么看待这些变化了。快速地浏览一遍目录,你就会发现,第2版中的多数章节在第3版中都出现了。在第3版中,去掉了两章和一节的内容,新增加了三章以及两节的内容。如果单从目录来判断第3版中改动的范围,得出的结论很可能是改动不大。我们依然保持前两版的组织结构,既按照问题领域又根据技术来组织章节内容。书中既包含基于技术的章,如分治法、动态规划、贪心算法、摊还分析、NP完全性和近似算法,也包含关于排序、动态集的数据结构和图问题算法的完整部分。我们发现虽然读者需要了解如何应用这些技术来设计和分析算法,但是思考题中很少提示应用哪个技术来解决这些问题。下面总结了第3版的主要变化:新增了讨论van Emde Boas树和多线程算法的章节,并且将矩阵基础移至附录。修订了递归式那一章的内容,更广泛地覆盖分治法,并且前两节介绍了应用分治法解决两个问题。4.2节介绍了用于矩阵乘法的Strassen算法,关于矩阵运算的内容已从本章移除。移除两章很少讲授的内容:二项堆和排序网络。排序网络中的关键思想——01原理,在本版的思考题87中作为比较交换算法的01排序引理进行介绍。斐波那契堆的处理不再依赖二项堆。修订了动态规划和贪心算法相关内容。与第2版中的装配线调度问题相比,本版用一个更有趣的问题——钢条切割来引入动态规划。而且,我们比在第2版中更强调助记性,并且引入子问题图这一概念来阐释动态规划算法的运行时间。在我们给出的贪心算法例子(活动选择问题)中,我们以更直接的方式给出贪心算法。我们从二叉搜索树(包括红黑树)删除一个结点的方式,现在保证实际所删除的结点就是请求删除的结点(在前两版中,有些情况下某个其他结点可能被删除)。用这种新的方式删除结点,如果程序的其他部分保持指针指向树中的结点,那么终止时就不会错误地将指针指向已删去的结点。流网络相关材料现在基于边上的全部流。这种方法比前两版中使用的净流更直观。由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容比第2版中所占的篇幅更小。修改了对KnuthMorrisPratt字符串匹配算法的讨论。修正了上一版中的一些错误。在网站上,这些错误大多数都已在第2版的勘误中给出,但是有些没有给出。根据许多读者的要求,我们改变了书中伪代码的语法,现在用“=”表示赋值,用“==”表示检验相等,正如C、C++、Java和Python所用的。同样,我们不再使用关键字do和then而是使用“//”作为程序行末尾的注释符号。我们现在还使用点标记法表明对象属性。书中的伪代码仍是过程化的,而不是面向对象的。换句话说,我们只是简单地调用过程,将对象作为参数传递,而不是关于对象的运行方法。新增100道练习和28道思考题,还更新并补充了参考文献。最后,我们对书中的语句、段落和小节进行了一些调整,以使本书条理更清晰。网站读者可以通过http://mitpress.mit.edu/algorithms/这个网站来获取补充资料,以及与我们联系。这个网站上给出了已知错误的清单、部分练习和思考题的答案等。此外,网站上还告诉读者如何报告错误或者提出建议。第3版致谢我们已经与MIT Press合作20多年,建立了很好的合作关系!感谢Ellen Faran、Bob Prior、Ada Brunstein和Mary Reilly的帮助和支持。在出版第3版时,我们在达特茅斯学院计算机科学系、MIT计算机科学与人工智能实验室、哥伦比亚大学工业工程与运筹学系从事教学和科研工作。感谢这些学校和同事为我们提供的支持和实验环境。Julie Sussman,P.P.A担当本书第3版的技术编辑,再次拯救了我们。每次审阅,我们都觉得已经消除了错误,但是Julie还是发现了许多错误。她还帮我们改进了几处文字表述。如果有技术编辑名人堂,Julie一定第一轮就可以入选。Julie是非凡的,我们怎么感谢都是不够的。Priya Natarajan也发现了一些错误,使得我们可以在将本书交给出版社前修正这些错误。书中的任何错误(毫无疑问,一定存在一些错误)都由作者负责(或许这些错误有些是Julie审阅材料后引入的)。对于van Emde Boas树的处理出自于Erik Demaine的笔记,转而也受到Michael Bender的影响。此外,我还将Javed Aslam、Bradley Kuszmaul和Hui Zha的思想也整合到这一版。多线程算法这一章是基于与Harald Prokop一起撰写的笔记,其他在MIT从事Cilk项目的同事也对本部分内容有所贡献,包括Bradley Kuszmaul和Matteo Frigo。多线程伪代码的设计灵感来自MIT Cilk扩展到C,以及由Cilk Arts的Cilk++扩展到C++。我们还要感谢许多第1版和第2版的读者,他们报告了所发现的错误,或者提出了改进本书的建议。我们修正了全部报告来的真实错误,并且尽可能多地采纳了读者的建议。我们很高兴有这么多的人为本书做出贡献,但是很遗憾我们无法全部列出这些贡献者。最后,非常感谢我们各自的妻子Nicole Cormen、Wendy Leiserson、Gail Rivest和Rebecca Ivry,还有我们的孩子Ricky、Will、Debby和Katie Leiserson,Alex和Christopher Rivest,以及Molly、Noah和Benjamin Stein。感谢他们在我们写作本书过程中给予的爱和支持。正是由于有了来自家庭的耐心和鼓励,本书的写作工作才得以完成。谨将此书献给他们。Thomas H.Cormen,新罕布什尔州黎巴嫩市Charles E.Leiserson,马萨诸塞州剑桥市Ronald L.Rivest,马萨诸塞州剑桥市Clifford Stein,纽约州纽约市译者序我从1994年开始每年都为本科生讲授《算法设计与分析》课程,粗略地统计一下发现至今已有5000余名各类学生听过该课。算法的重要性不言而喻,因为不管新概念、新方法、新理论如何引人注目,信息的表示与处理总是计算技术(含软件、硬件、应用、网络、安全、智能等)永恒的主题。信息处理的核心是算法,在大数据时代,设计高效的算法显得格外重要。当初,为了教好这门基础必修课,提高教学质量,我觉得应该从教学内容的改革入手,具体来说,采用的教材应该与国际一流大学接轨。1997年访美期间,在Stanford大学了解到他们采用的教材是Thomas H. Cormen等编著的《Introduction to Algorithms》,于是从Stanford书店买了一本带回来,从第二年开始便改用该书作教材。至今,15年过去了,我们一直追随其变迁,从第二版到第三版。教学实践证明它确实是一本好教材,难怪世界范围内包括MIT、CMU、Stanford、UCB、Cornell、UIUC等国际国内名校在内的1000余所大学都一直用它作为教材或教学参考书,也难怪它印数巨大且在《高引用计算机科学文献》(《Most Cited Computer Science Citations》)一览表中名列前茅。这是一本有1200多页的厚书,教学内容非常丰富,不但涵盖了典型算法、算法分析、算法设计方法和NP完全等内容,而且还包括数据结构,甚至高级数据结构的介绍。后者可作为国内《数据结构》课程的教材或教学参考资料。在学时有限的情况下,要在本科阶段教完前者的所有内容也是困难的,故要做取舍。好在该书的各个章节相对独立且难度由浅入深,我们的做法是将相对容易的一般的入门性内容留在本科阶段,而将相对难的专门的较深入的内容并入研究生课程《算法及复杂性》或《计算复杂性》。除本校外,本人就曾多次应邀在兰州大学、湖南大学和浙江师范大学等院校为研究生讲授过这些内容。其实该书也适合希望增强自身程序设计能力和程序评判能力的广大应用计算技术的社会公众,特别是参加信息学奥林匹克竞赛和ACM程序设计竞赛的选手及其教练员。教学过程中我们发现该书具有以下特点:(1)选材与时俱进,具有实用性且能引起读者的兴趣。该书中研究的许多问题都是当前现实应用中的关键技术问题。(2)采用伪码描述算法,既简洁易懂又便于抓住本质,再配上丰富的插图来描述和解释算法的执行过程使得教学内容更加通俗,便于自学。(3)对算法正确性和复杂性的分析比较全面,既有严密的论证,又有直观的解释。(4)既有结论性知识的介绍,也有逐步导出结论的研究过程的展示。(5)丰富的练习题和思考题使得及时检验所学知识掌握情况和进一步拓展学习内容成为可能。同时,我们也注意到:学生们总是反映看英文版教材速度太慢,所以他们总是想方设法再找一本中译版来阅读。正是这样的背景,在第三版的《Introduction to Algorithms》出版后,我们应机械工业出版社编辑的邀请,启动了长久的翻译工程,先后参加翻译工作的老师有:国防科学技术大学的殷建平教授(翻译第1~3章)、中国科学技术大学的徐云教授(翻译第10~14章、第18~21章和第27章)、南开大学的王刚教授(翻译第4章和第15~17章)、南开大学的刘晓光教授(翻译第6~9章)、南开大学的苏明副研究员(翻译第5章和第28~30章)、上海交通大学的邹恒明教授(翻译第22~26章)、哈尔滨工业大学的王宏志副教授(翻译第31~35章和附录部分)。由于水平有限且工作量巨大,译文中一定存在许多不足,在此敬请各位同行专家学者和广大读者批评指正,欢迎大家将发现的错误或提出的意见与建议。在整个工程即将完成之际,我们特别要感谢机械工业出版社的温莉芳老师和王春华老师,没有你们的信任、耐心和支持整个翻译工作不可能完成。殷建平2012年11月于长沙

内容概要

Thomas H. Cormen (托马斯•科尔曼) 达特茅斯学院计算机科学系教授、系主任。目前的研究兴趣包括:算法工程、并行计算、具有高延迟的加速计算。他分别于1993年、1986年获得麻省理工学院电子工程和计算机科学博士、硕士学位,师从Charles E. Leiserson教授。由于他在计算机教育领域的突出贡献,Cormen教授荣获2009年ACM杰出教员奖。
Charles E. Leiserson(查尔斯•雷瑟尔森)麻省理工学院计算机科学与电气工程系教授,Margaret MacVicar Faculty Fellow。他目前主持MIT超级计算技术研究组,并是MIT计算机科学和人工智能实验室计算理论研究组的成员。他的研究兴趣集中在并行和分布式计算的理论原理,尤其是与工程现实相关的技术研究。Leiserson教授拥有卡内基•梅隆大学计算机科学博士学位,还是ACM、IEEE和SIAM的会士。
Ronald L. Rivest (罗纳德•李维斯特)现任麻省理工学院电子工程和计算机科学系安德鲁与厄纳•维特尔比(Andrew and Erna Viterbi)教授。他是MIT计算机科学和人工智能实验室的成员,并领导着其中的信息安全和隐私中心。他1977年从斯坦福大学获得计算机博士学位,主要从事密码安全、计算机安全算法的研究。他和Adi Shamir和Len Adleman一起发明了RSA公钥算法,这个算法在信息安全中获得最大的突破,这一成果也使他和Shamir、Adleman一起得到2002年ACM图灵奖。他现在担任国家密码学会的负责人。
Clifford Stein(克利福德•斯坦)哥伦比亚大学计算机科学系和工业工程与运筹学系教授,他还是工业工程与运筹学系的系主任。在加入哥伦比亚大学大学之前,他在达特茅斯学院计算机科学系任教9年。Stein教授拥有MIT硕士和博士学位。他的研究兴趣包括:算法的设计与分析,组合优化、运筹学、网络算法、调度、算法工程和生物计算。

媒体关注与评论

“鉴于数据量的爆炸性增长,和计算应用的多样性,现在比以往更需要有效算法。这本书条理清晰,是一本非常好的算法设计与分析方面的导论性书籍。每章前半部分介绍了讲授和学习算法的有效方法,后半部分为更专业的读者和求知欲强的学生提供了更引人入胜的资料来讨论这个迷人领域的各种可能性和挑战。”—Shang-Hua Teng(腾尚华),南加州大学维特比工学院计算机系Seeley G. Mudd 教授   “本书是算法领域的一部经典著作,书中系统、全面地介绍了现代算法:从最快算法和数据结构到用于看似难以解决问题的多项式时间算法;从图论中的经典算法到用于字符匹配、计算集合和数论的特殊算法。本书第3版尤其增加了两章专门讨论van Emde Boas树(最有用的数据结构之一)和多线程算法(日益重要的一个主题)。”——Daniel Spielman,耶鲁大学计算机科学和应用数学Henry Ford II教授   “作为一个在算法领域有着近30年教育和研究经验的教育者和研究人员,我可以清楚明白地说这本书是我所见到的该领域最好的教材。它对算法给出了清晰透彻、百科全书式的阐述。我们将继续使用这本书的新版作为研究生和本科生的教材和可以信赖的研究参考书。”——Gabriel Robins,弗吉尼亚大学工程和应用科学学院计算机科学系教授

名人推荐

鉴于数据量的爆炸性增长,和计算应用的多样性,现在比以往更需要有效算法。这本书条理清晰,是一本非常好的算法设计与分析方面的导论性书籍。每章前半部分介绍了讲授和学习算法的有效方法,后半部分为更专业的读者和求知欲强的学生提供了更引人入胜的资料来讨论这个迷人领域的各种可能性和挑战。——Shang-Hua Teng(腾尚华),南加州大学维特比工学院计算机系Seeley G. Mudd 教授本书是算法领域的一部经典著作,书中系统、全面地介绍了现代算法:从最快算法和数据结构到用于看似难以解决问题的多项式时间算法;从图论中的经典算法到用于字符匹配、计算集合和数论的特殊算法。本书第3版尤其增加了两章专门讨论van Emde Boas树(最有用的数据结构之一)和多线程算法(日益重要的一个主题)。——Daniel Spielman,耶鲁大学计算机科学和应用数学Henry Ford II教授作为一个在算法领域有着近30年教育和研究经验的教育者和研究人员,我可以清楚明白地说这本书是我所见到的该领域最好的教材。它对算法给出了清晰透彻、百科全书式的阐述。我们将继续使用这本书的新版作为研究生和本科生的教材和可以信赖的研究参考书。——Gabriel Robins,弗吉尼亚大学工程和应用科学学院计算机科学系教授

图书封面


 算法导论(原书第3版)下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计8条)

  •     我已经看完《算法导论》很久了,不接触算法也很久了。也没有《算法导论》的习题解答。容我先吼一句:孩子,醒醒吧,那都是骗人的!!!老子都看完算法导论了,还不是一样做着前端的外包,还不是合同到期直接滚了。。。算法酷炫一点有什么用,比大数据部门的一部分人厉害又有什么用,还不是个被裁的命!!!------------------------------吼完,舒坦多了--------------------------------------------------------------以下是楼主黑化史---------------------------------今年5月21日实习期,同事的一句玩笑话促成了我买下这本《算法导论》。过了今晚,正好算半年吧。回顾一下:经过半年的努力,我基本算是读完了算法导论。全书除掉附录和索引,全部看完,题目一共1115道,一共有8道题算是没有完成。。。8道里面有2道是概念不懂,比如34.5-2,那个“一元形式”我就没看懂。。还有3道是结论和题设不一样,如35-6的d小题,感觉是S和T写反了。。还有3道是自己没有做出来,也没时间做了,分布在第28章的第二个小节的附带小题目中。。因为我再过一个月就要失业了,不能再陪那几题耗下去了,明天开始复习一下设计模式,ios代码,数据库之类的。。。综合下来完成度在99%以上吧。。刚开始我受了网络评论以及自己内心的怂恿,以为看完这本书就能飞上枝头变凤凰,毅然决然地边工作,边每晚10~12点半,以及周六日无休看这本书。。。开始的那一两个月满是激情,因为今年本科毕业,5,6月份是实习,那个激情的,自己赚钱啦,白天工程代码,晚上科学算法,太完美了。。但从7月份开始我开始黑化,因为,公司部门调整,我的部门要没了,部门的老员工陆续离职,因为本身也就是干外包的,再加上本人是前端,再加上,我这个刚毕业就要失业。。。幸亏部门的外包合同是到年底,给了我一点喘息的机会,至少到年底才裁员。。哈哈,我加快了脚步看这本书。。。不过内心已经开始黑化。到了10月份以后,由于离被裁的时间越来越近,部门的有点本事的老员工也走的差不多了,就剩下几个老弱病残和我这类刚毕业的小苗子。。应付着外包的合同。。。我已经不在乎自己能不能变成凤凰了,只希望善始善终,给自己一个装B的理由。。于是继续攻打着后面的那些变态章节。昨天终于算看的差不多了,能做的部分基本都做了,少部分遗留题目,我也就只能算了。。我去买了本设计模式的书看一看,希望能够,裁了后找个月薪不比现在外包低的岗位,八千以上最好。。。不过这本书最大的好处就是能够让我装B,想着,那些同一楼层的高学历大数据员工,鄙视我们这些本科外包人员时,我能够回击他们,能够在算法上虐他们中的一部分。。。我被裁时,能够吼一句:“你们这些渣渣,水平都没有我高,竟然敢瞧不起我,渣渣,裁了我是你们的损失”。。。。哈哈,想想还有点小激动呢。。。要是看着MIT这个名号,老子纯自学,花了半年就干的差不多了,老子要是有命去MIT,将来也是大神。。。。各种YY。至此,楼主彻底黑化。---------------------------关于楼主的能力----------------------------------本科毕业,大学的《离散数学》,《高等数学》《线性代数》,都是一般般的分数,大学时,愤青,没本事却高傲指责国内教育,然后看了本《什么是数学》平衡心理。算法导论之前,上过《数据结构》这个课,然后,在POJ做了两个月的ACM入门题。。。然后学了一些java,包括《30天自制操作系统》以及《JAVA编程思想》。。当然工作需要的IOS的一点OC代码。。。也算有一定的代码量。---------------------------正能量PS:学习心得----------------------------下面是本人在知乎的一个回答,完善版本:0.孩子醒醒吧,我看完了还不是个外包被裁员的命。。 1.英文版和中文版的差别不大,算法导论的翻译绝对是可以的,当然的确有部分明显的错误,不过基本都是非常明显的打印错误,少部分的翻译错误也是很容易判别的,绝对不会影响阅读。。。如果你中文版看不懂,那么基本看英文也是一个结果,该不懂的还是不懂,某些人可能是因为中文版没看懂,然后断定中文版翻译有问题,这样就可以掩盖自己的水平缺陷,达到自欺欺人的效果。。。占比很小的翻译错误可以临时对照pdf的英文版。。。。。总之,没有必要特意看英文版。。。2.没有算法基础的同学,尤其是连数组,堆栈,二叉树的遍历,几个基本排序算法的代码都写不出来的同学,别看这本书。。。虽然这本书也会提这些东西,但是,它基本是做个引子,然后引入更深的东西。。。就好比,小学数学没学好,直接去学大学数学一样。。。所以先从小学数学学起(先学一本最基础的数据结构)。3.如果浏览目录发现一半以上的东西是完全没见过的,那么在第2条的基础上,去poj练一两个月,把网络流的基本算法步骤,凸包,并查集,线段树,贪心动态规划,逆序数,以及基本的数论算法之类的东西给补上。。。不然就好比,高中毕业的你直接看《苔丝》之类的英文小说一样,一段话里面有二三十个单词不认识,临时去查,去标记,特别痛苦。。根本享受不了小说的气氛和韵味。4.在做好2.3的基础上,如果乐于探究算法的原理,想知其然并知其所以然,而且又有很多时间(几百个小时吧),这样就可以读这本书了。。我读这本书的证明部分是有个比较独特方法:不要把自己当成一个读者,而是一个交流者,和这本书的作者(大师)交流。。比如,它一般是要在做一个大证明之前会先抛出这个证明结论,你看到结论后,如果比较感兴趣,可以先自己试着去探索一下,证明一下,探索几十分钟后,哪怕没有探索出结果,那也是多少有了自己的一点收获,然后带着你的收获再来看这本书的证明,就像你和大师交流一样。。。5.别把这本书做入门书,说是入门书的人要么就是特别厉害而且特别不负责任的,要么就是啥都不懂的人以为看到“导论”两个字就认为特别基础的人。6.关于数学,首先必须是大学毕业的,学过高等数学,矩阵和离散数学的,如果没学过这几本,那么里面的东西也真够呛,原因同2。。如果学过但是忘了,那么书的附录部分会有复习,看一下就可以了。。。如果看了还是搞不懂书里面的推理,那么基本就是你可能不太适合读这类书的证明部分,不太适合搞研究。。。仅此而已。。。7.要想完成度比较高的话,还需要不怕死的精神。比如那个斐波那契堆,vEB树,网络流的证明部分,还有NP那一章节的证明,看着特别唬人,其实只要不怕死,硬着头皮一行一行啃,其实也能过,而且后面的题目却不算难。。。8.小马过河的典型案例,小马过河,在硬是“不走桥”这个前提下。算法导论很有这个意味。。。老牛说比较浅,松鼠说很深,真正我自己淌过去的时候才发现不是很深也不是很浅。。。。。。想起大学的日语N1的高分之日,以及托业900的笑傲之时,都一样的。。。9 .算法导论本身内部有很多明的或者暗的承接关系,明显的证明之间互相引用的承接关系我就不讲了,暗的承接关系比较有意思。比如12章开始,二叉树是2叉的东西,13章补充,14章扩张,之后18章是若干叉的B树,19章的logN叉,20章的√N叉,之后习题中补充了n的1/3叉,等等。。1叉就是链表,而N叉就是数组和最初的第10章相对。。。比如还有一条是斐波那契数,4-4那一题就讲了点。。16章的动态规划的两个思路。19章的斐波那契堆又讲了点,后面的31-3又结合数论讲了些,如果再结合30-1的那题,以及31.1那章节之前的扯淡部分的内容,还能优化。。看了第27章后啥循环都想写成动态多线程的,再优化一次。无穷无尽了。10 . 对于翻译的补充,12.3-5坑了我好久,严重翻译错误。21.4的讲解里“一个增长非常慢的函数与其增长非常慢的逆函数”,也是一个非常屌的错误。。还有第33章末尾的注记里面,那个“指南针和尺子”作图,也是亮瞎了我的眼。。11. 有一些题目真的不是努力就可以的,有时还需要灵感,也就是书前言说的创造力。。比如5.1-3。。。很有意思的东西,想出来时,贝叶斯,灵光一闪。。哈哈。装B必备。12. 读到后面整个人会进入一种奇妙状态,比如读到最短路径,网络流那一章,闭上眼睛整个脑子里就有那些网络啊,流动啊,那个预流就好像一个海湾里一个浪打出去,挤着出湾口出去,没出去的,就被礁石挡回来,来回激荡。。而floyd_warshall就好像一把小石子丢到一个平静的池塘里,千万小涟漪同时向外扩散。。。而负权环,就算是池塘有个无底洞,有个塌陷的大漩涡吧。。。还有网络流的证明部分,那个最小割和最大流,后面线性规划,也是,两种相辅相成的东西。。镜像一般,一实一虚,虚到实,实到虚,虚实结合。。。好奇妙。。。还有FFT那个美丽的蝴蝶,,等等有一回在动车上,我在看书,别人问:“你看这些公式怎么不用草稿纸啊。”我回了句:“你知道盲棋吗?”有好多题,其实就是一个比较感性的想法,然后,哈哈,当然不用草稿纸,理性的推理也能建立在感性的想法上,重要的是想法。后来看附录矩阵部分时,也基本是直接在脑子里完成了递归证明,当时感觉自己屌爆了,么么大。13. 本人读算法导论时,直接事先在微信朋友圈喊了一句,说要单枪匹马干掉,,然后每个周六都有进展就直播,当我遇到苦难,郁闷地去刷朋友圈时,哈哈,当初那个状态,还有萌妹子点赞呢,瞬间,满血满蓝回归了。。当然,好多时候,脑子会过热,这个时候,冷却与放纵是必须的。14 本人是双子座,思维跳跃,性格分裂,所以评论也就跳跃与分裂了,哈哈。------------------------补充分割线-------------------------------跟评论的人吵起来了。。也是,毕竟这篇满满的负能量嘲讽,阿Q文章,自然会让不少人不满。。算法导论本身也就是一个不上不下的书,说研究性,大数据的那些数据挖掘的博士们可瞧不上这本呢,说工程性,hadoop的工程师们可瞧不起这本呢。说竞赛性,那些ACM国际大奖的人可瞧不起这本呢。可能某些话不慎得罪了某些人,想想,打了阿Q的某些人如果听到,阿Q说:“儿子打老子”之后,一定还会回来补一拳吧。我曾经给自己保证过,我哪天真的读完了算法导论,我可以昂首挺胸的离开那家裁我的公司。我做到了。我现在真觉得我可以在算法部分“虐大数据部门的某些人”,我真这么觉得。。。这本书的知识现在只是我算法能力的一个真子集。读完后的这两个月,我每天仍然都在变强。-----------------------补充分割线-----------------------------------下面回复中有不少人关心我的状况,我很菜以至于很多事情都无能为力。这曾经只是个童话而已。算法算是彻底和我无缘了。真想找个方向一直干下去,奈何造化弄人,我这一年因为工作的安排,写了下go的并发调度,写了python的爬虫,还搞了点ES。。。毕竟菜,低人一等,只能都答应下来。算法导论多少还是帮助了我吧,至少我在分析性能相关的模块的时候会更加理性,更加实事求是。。因为做了一件别人眼里不容易的事情,所以,后面工作胆子就比较大,先喊出来再去做,比如去看个go的运行时然后获取灵感加入到并发调度中,或者去突击下ES和lucene源码写个parser的plugin之类的。。。整个人放的比较开,敢做事,敢做成事,比较有韧性。。。虽然级别还是很低,年限也很低。。。有时自我安慰(吹牛):干一样的活,拿半份工资。诶。。。
  •     在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。第3版的主要变化:新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录。修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。移除两章很少讲授的内容:二项堆和排序网络。修订了动态规划和贪心算法相关内容。流网络相关材料现在基于边上的全部流。由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。修改了对Knuth-Morris-Pratt字符串匹配算法的讨论。新增100道练习和28道思考题,还更新并补充了参考文献。
  •     一冲动就在网上买下了这本传说中的经典巨作。刚到手就有点后悔了,那是相当的厚,开始怀疑自己就是能把这本经典啃下来了。不怕,慢慢来,一边看书一边实现代码,再在博客里记录下心得。欢迎到我的CSDN博客作客http://blog.csdn.net/lyapple2008

精彩短评 (总计101条)

  •     很多内容,当编码时很难找到的答案, 但是这里面 从设计者考虑,答案清楚明了 , 比如为什么thread func 要定义成static,
  •     算法课教材,内容详细,课后题很有意思
  •     哈哈哈必须5星
  •     计算机教科书中经典,算法中的圣经,没有之一
  •     算法导论,这本书计算机专业的以及某些非计算机专业的同学都知道。。。大名鼎鼎啊~ 需要好好咀嚼,算法是一辈子的事情!!!
  •     程序=算法+数据结构不必多言,你所需要的就是去掌握它,并且举一反三
  •     读过英文,点赞
  •     内容很多,知识点比较细,讲的也比较透彻,非常好的一本书,配上网易公开课的那门算法导论,那是极好的,哈哈
  •     形而上
  •     被翻译毁掉的名著。
  •     4m f7fb roa y6fb r6a nm6f 86 c7 no6fb pm7 ea 4a6f 5o7fb taf y7a 47f d6a eam noa o7f 5omf 5ma roa nom pm7 9ma pa6fb no7 ea na pa6fb y6f im6f ta lmg tm 47a ogm roa nom pm7 ea7 bgm tmf rmg ea roa o7 h7a pm7 t7 9gm d6a ra nom pm7 9m ro7 paf cm ra ea na y7a 4a6f 5o7fb ea ia 56a f7fb 9m 9gfb ro7 pa7 96a h6 c6a noa ro7f ro7fb roa y6f k6a
  •     全球超过50万人阅读的算法圣经
  •     找工作翻了一遍
  •     内容很全面,研究算法的入门之选!
  •     阅读本书需要有一定的程序设计经验,对数据结构和算法应有初步了解,最好也具备相关的数学知识。关于内容:介绍了多种经典问题的解决方案和技巧,围绕“算法”这一核心,深入探讨了程序设计(算法)的运行效率,详细剖析了算法的时空性,使我们充分认识到算法设计的重要性。正在阅读,受益匪浅!!
  •     翻译不行,慎买中文版
  •     内容详尽,描述清晰有序,不愧为算法圣经
  •     在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。
      全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册
  •     理论性比较强,烧脑
  •     很经典的教材,内容需要一定数学基础,没有基础的,不适合自学。算法在开发中还是非常重要的
  •     算法导论值得拥有,要好好研究研究
  •     这是我算法方面的第一本书。
  •     同样是比较经典的算法书,不过要求有一定的数学功底啊,能够看完理解就是大牛了。
  •     断断续续 在正好有工程有paper用到的时候拿出来查阅 今天翻开突然发现已经把中文版翻的很陈旧了 自勉
  •      体会就是,确实不错。比较注重算法证明和逻辑推导,某种程度上更像是在读数学教材,但是所需要的数学知识又并不全都太艰深,所以本科或者高中或者读过大学工作过的基本都可以读下来,前提是一定要有兴趣和耐心。
      因为毕竟科学家还是少数,作为工程人员,本书的意义在于锻炼基础的算法思维和感觉,以及在日后的工作有能力发现或者构造适用这些算法的场景。如果有更好的基础,甚至可以改造某些算法来适应更特殊的需求。
      假如日后有一天遇到某些复杂场景的需求或者性能瓶颈,一定会感谢你自己曾经读过算法导论。
  •     到现在看了大概30页,也就一个礼拜的时间,工作之余看看,收获颇多,确实是本算法的经典书籍
  •     之前看过算法分析和数据结构那本书 再买这本书本来是准备当做补充的 拿到书才发现厚的吓人 看了下目录 有些东西还是没接触过的 稍微翻看了下第一页内容 终于知道为什么这么厚了.....太详细.....连什么是算法的定义都写了.....还详细举例了....难怪要这么厚了.....感觉还是需要的时候拿出来看看 补充一下
  •     全球超过50万人阅读的算法圣经!算法标准教材,国内外1000余所高校采用
  •     机械工业出版社的书,大学四年就要攒齐!!学院老师给我们选这本书作为算法这门十分十分重要的课的教材想必是经过了大量的比较,虽然我不认为盲目从众好,不过踩在巨人的肩膀上才能看得更远!肯定是经历过很多实践经验总结出的,it人应该都读一下!!!!
  •     经典的算法书,非常值得拥有一本,好好研读。支持……
  •     呵呵
  •     难得纸这么好,翻译的也不错
  •     教科书
  •     编程之美。
  •     翻译呵呵
  •     其实翻译的还是可以的,我上课主要看中文版,配合着英文版来看。不过这本书比较理论,不上课干看这本书感觉很难读下去
  •     算法经典,无需多言。公式证明,全是干货。
  •     非常经典,详细;算法书中的战斗机,你值得拥有!!
  •     这本书被誉为“算法圣经”,实在是值得反复研读
  •     算法导论在算法领域是算法中的圣经。研究算法的人,都应该有一本,这么说,有点做广告的嫌疑,可是算法导论确实应该好好地研究几年
  •     学校开始安排算法的课程了。所以,从本学期开始读这本大块头了
  •     我觉得看此本书能拯救我这可怜的智商。
  •     挑着读了半本,习题没做,没时间。。。
  •     这本算法本里的内容覆盖的范围很大,因此有些内容讲得不是很深,但是有些关于时间复杂度的计算太难了。
  •     很赞的书 算法讲解很透彻 有助于学习编程
  •     对于想深入算法的了解,这本书绝对是圣经
  •     至于书的内容,我想不用我多什么,学算法的都知道。至于有人说看不懂之类的,那不能怪书或者怪当当,只能检查自己的原因。我收到的书感觉非常的好,纸张也很好,非常的白净。
  •     感谢此书赐予我offer
  •     必须多读
  •     这本书是学校Algorithm的中译版,书中的算法很经典,而且书中提及到一些伪代码,有助于帮助实现,非常经典的一本书,值得一直学习
  •     算法中圣经,不解释。超经典的一本书,程序员必读。
  •     算法导论(原书第3版)(全球超过50万人阅读的算法圣经!算法标准教材,国内外1000余所高校采用)
  •     有部分写的不是很好。不是很全。
  •     算法导论(原书第3版)编程人员必备呀
  •     非常经典的算法入门书,但需要好好下功夫去看
  •     算法圣经,收藏也值得,遇**当做活动,先买了,有空慢慢研究~
  •     算法入门的经典之作。新版更新了一些内容,感觉读起来受益匪浅。
  •     算法导论适合各类计算机的从业者,包括即将从业的大中专生,对于熟悉java、c#等程序员来说,可以很方便的将伪代码转换成相应的代码
  •     算法圣经,超实用
  •     神书,毫无悬念,只希望有朝一日能啃透
  •     哎,这个翻译看着真是累。
  •     没见过比这本书更经典的算法书了,赞一个
  •     算法导论(原书第三版)是一本非常实用的参考书。这部书作者对不同的阅读人群给以不同的提示,如在那些不太适合本科生、更适合研究生的章节和练习前面,都加上了星号(·)。带星号的章节也不一定就比不带星号的更难,但可能要求了解更多的数学知识。类似地,带星号的练习可能要求有更好的数学背景或创造力。作者还有意不提供练习题和参考答案,意欲培养学生的思考能力,从而自己动手得出答案。感谢作者的良苦用心,感谢作者为我们提供了这样一本非常实用的参考书。这本书让我们享受了愉悦的学习过程。同时感谢当当网为我们提供的好书渠道,一流的发货速度,一流的服务质量!
  •     书是正品,是算法中的经典,但快递中,书的边角有些破损,无碍阅读~下次包装好一些吧!
  •     算法中的权威著作,程序猿必读。书的印刷质量超好,纸质也好。
  •     相当有深度的一本书,算法界的圣经!
  •     学习算法分析的好书,需要多次看。
  •     这是一本非常非常难得的好书,在我看来这是计算机资料书中的圣经。 对于研究算法及其优化提供了很好的思路···
  •     程序员必看没有程序不要算法之前打印出来看了一些觉得很好现在买来仔细研读
  •     书的印刷质量非常好!适合学习算法时使用
  •     算法经典书 呵呵
  •     买的最贵的一本书~~粗略的看过一些
  •     宝典系列,应该算是工具书把。翻译的一般,可能是原书累赘的解释也很多吧?对于这种大部头,可以跳着看,反正也能看懂。而且这并非实战型的一本书,更类似于理论指导书。。。
  •     我发现我每个期末都能读好多书呢hhh
  •     本书只能用经典二字形容,学习算法的人如果没看过此书,千万不要说“我算法不错”,熟读此书三遍后,可以说“我算法入门”了。第二版我有,但经典嘛,每一版我都会买,倒不是为了知识而买,而是为了对算法大师和算法优美的尊重,总之一句话,此书绝不会让你后悔!最强烈的推荐!!
  •     非常经典的计算机算法的图书,一般大学阶段的计算机生,都应该读读。
  •     疲劳时阅读有助安眠。
  •     2015秋 教材
  •     这本书是目前市场上涉及算法方面不可多得的学习教材,如果要学习算法等知识,本书将是不二之选!
  •     大学讲了几章,毕业断断续续读完了,挺难的一本书,吐槽的事字小书后,就不能大点字然后分成几册吗?
  •     学了算法三年后再看,竟然感觉有点难。。。是我太渣了么。。。
  •     书是好书。不过翻译读着总感觉别扭。 红黑树讲解的异常精彩!删除节点四种情况变两种6的飞起。 证明太多了数学渣渣表示心累。 变量名有些短不太好理解。
  •     前270页,到16章为止都是看得很仔细。后面各种高端数据结构b树一来又看不下去了…然后后面的矩阵运算啊动态多线程啊数论算法啊近似算法啊花了2小时扫了一遍…第一遍就这样吧。回头把那些动态规划贪心算法实现一遍,以后再读吧!20:17@图书馆
  •     正在努力研究中
  •     需要常看
  •     算法方面的权威教材,各大高校都采用
  •     算法导论(原书第3版),很权威很有用,价有点高。
  •     读了一个学期,第一次在豆瓣上标专业书…
  •     经典算法和数据结构的证明,流程,实例,程度较深
  •     并不推荐这本经典……的中文版
  •     《算法导论》是我们专业的一门很重要的必修课,而且编程的核心就是算法,算法很难,这本书很专业、很系统,很适合很适合专业的人士进行阅读和学习,很厚的书,内容也很有深度,读起来挺难的,需要很多时间去理解。如果能学好这本书中的大部分内容,就是很牛很牛的大神级别的人物了~~~~~ 机械出版社的书,大学四年应该就会攒齐了~~~~~~~
  •     从销量,评价还有书的厚度就能够看出来这本书的权威与经典。只不过里面的算法是用伪代码描述的,可能不太适合初学者去阅读,建议有一定程序设计基础的人学学习。
  •     很多例子
  •     第一次这么深刻的觉得,数学是计算机的基础
  •     经典算法书籍,很好的参考书,程序员必备。
  •     经典,可惜有些证明太花时间了。
  •     并没有评分想象的那么好,首先书中大量的学术词语,数学公式,读起来枯燥无味,还夹杂着怪里怪气的词语,简直是折磨。书中很多算法我都有了解,但通过这本书去看,反而搞得我不明白了。
  •     算法书中的经典,很好的书
  •     算法学习必备,书很厚实!
  •     算法导论一直是经典教材
  •     硬派程序员
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024