| > 书[0名0]: | 算法导论(原书第3版|3021144 |
| > 图书定价: | 128元 |
| > 图书作者: | (美)Thomas H.Cormen;Charles E.Leiserson;Ronald L.Rivest;Clifford Stein |
| > 出版社: | 机械工业出版社 |
| > 出版日期: | 2013/1/1 0:00:00 |
| > ISBN号: | 9787111407010 |
| > 开本: | 16开 |
| > 页数: | 780 |
| > 版次: | 1-1 |
| 作者简介 |
| Thomas H. Cormen (托马斯?科尔曼) 达特茅斯[0学0]院计算机科[0学0]系教授、系主任。目前的研究兴趣包括:算[0法0]工程、并行计算、具有高延迟的加速计算。他分别于1993年、1986年获得麻省理工[0学0]院电子工程和计算机科[0学0]博士、硕士[0学0]位,师从Charles E. Leiserson教授。由于他在计算机教育[0领0]域的突出贡献,Cormen教授荣获2009年ACM杰出教员奖。 Charles E. Leiserson(查尔斯?雷瑟尔森)麻省理工[0学0]院计算机科[0学0]与电气工程系教授,Margaret MacVicar Faculty Fellow。他目前主持MIT[0超0]级计算技术研究组,并是MIT计算机科[0学0]和人工智能实验室计算理论研究组的成员。他的研究兴趣集中在并行和分布式计算的理论原理,尤其是与工程现实相关的技术研究。Leiserson教授拥有卡内基?梅隆[0大0][0学0]计算机科[0学0]博士[0学0]位,还是ACM、IEEE和SIAM的[0会0]士。 Ronald L. Rivest (罗纳德?李维斯特)现任麻省理工[0学0]院电子工程和计算机科[0学0]系安德鲁与厄纳?维特尔比(Andrew and Erna Viterbi)教授。他是MIT计算机科[0学0]和人工智能实验室的成员,并[0领0]导着其中的信息安全和隐私中心。他1977年从斯坦福[0大0][0学0]获得计算机博士[0学0]位,主要从事密码安全、计算机安全算[0法0]的研究。他和Adi Shamir和Len Adleman一起发明了RSA公钥算[0法0],这个算[0法0]在信息安全中获得[0大0]的突破,这一成果也使他和Shamir、Adleman一起得到2002年ACM图灵奖。他现在担任[0国0]家密码[0学0][0会0]的负责人。 Clifford Stein(克利福德?斯坦)哥伦比亚[0大0][0学0]计算机科[0学0]系和工业工程与运筹[0学0]系教授,他还是工业工程与运筹[0学0]系的系主任。在加入哥伦比亚[0大0][0学0][0大0][0学0]之前,他在达特茅斯[0学0]院计算机科[0学0]系任教9年。Stein教授拥有MIT硕士和博士[0学0]位。他的研究兴趣包括:算[0法0]的设计与分析,组合[0优0]化、运筹[0学0]、网络算[0法0]、调度、算[0法0]工程和生物计算。 |
| 内容简介 |
| 在有关算[0法0]的书中,有一些叙述非常严谨,但不够全面;另一些涉及了[0大0]量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算[0法0],并着力使这些算[0法0]的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为[0独0]立的[0学0]习单元;算[0法0]以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数[0学0]严谨性。 《算[0法0]导论(原书[0第0]3版)》选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算[0法0]课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头 bibei 的参考书或工程实践手册。 [0第0]3版的主要变化: 新增了van Emde Boas树和多线程算[0法0],并且将矩阵基础移至附录。 修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治[0法0]。 移除两章很少讲授的内容:二项堆和排序网络。 修订了动态规划和贪心算[0法0]相关内容。 流网络相关材料现在基于边上的全部流。 由于关于矩阵基础和Strassen算[0法0]的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。 修改了对Knuth-Morris-Pratt字符串匹配算[0法0]的讨论。 新增100道练习和28道思考题,还更新并补充了参考文献。 |
| 目录 |
《算[0法0]导论(原书[0第0]3版)》 出版者的话 译者序 前言 [0第0]一部分 基础[0知0]识 [0第0]1章 算[0法0]在计算中的作用3 1.1 算[0法0]3 1.2 作为一种技术的算[0法0]6 思考题8 本章注记8 [0第0]2章 算[0法0]基础9 2.1 插入排序9 2.2 分析算[0法0]13 2.3 设计算[0法0]16 2.3.1 分治[0法0]16 2.3.2 分析分治算[0法0]20 思考题22 本章注记24 [0第0]3章 函数的增长25 3.1 渐近记号25 3.2 标准记号与常用函数30 思考题35 本章注记36 [0第0]4章 分治策略37 4.1 [0大0]子数组问题38 4.2 矩阵乘[0法0]的Strassen算[0法0]43 4.3 用代入[0法0]求解递归式47 4.4 用递归树方[0法0]求解递归式50 4.5 用主方[0法0]求解递归式53 4.6 证明主定理55 4.6.1 对b的幂证明主定理56 4.6.2 向下取整和向上取整58 思考题60 本章注记62 [0第0]5章 概率分析和随机算[0法0]65 5.1 雇用问题65 5.2 指示器随机变量67 5.3 随机算[0法0]69 ��5.4 概率分析和指示器随机变量的进一步使用73 5.4.1 生日悖论73 5.4.2 球与箱子75 5.4.3 特征序列76 5.4.4 在线雇用问题78 思考题79 本章注记80 [0第0]二部分 排序和顺序统计量 [0第0]6章 堆排序84 6.1 堆84 6.2 维护堆的性质85 6.3 建堆87 6.4 堆排序算[0法0]89 6.5 [0优0]先队列90 思考题93 本章注记94 [0第0]7章 快速排序95 7.1 快速排序的描述95 7.2 快速排序的性能97 7.3 快速排序的随机化版本100 7.4 快速排序分析101 7.4.1 坏情况分析101 7.4.2 期望运行时间101 思考题103 本章注记106 [0第0]8章 线性时间排序107 8.1 排序算[0法0]的下界107 8.2 计数排序108 8.3 基数排序110 8.4 桶排序112 思考题114 本章注记118 [0第0]9章 中位数和顺序统计量119 9.1 小值和[0大0]值119 9.2 期望为线性时间的选择算[0法0]120 9.3 坏情况为线性时间的选择算[0法0]123 思考题125 本章注记126 [0第0]三部分 数据结构 [0第0]10章 基本数据结构129 10.1 栈和队列129 10.2 链表131 10.3 指针和对象的实现134 10.4 有根树的表示137 思考题139 本章注记141 [0第0]11章 散列表142 11.1 直接寻址表142 11.2 散列表143 11.3 散列函数147 11.3.1 除[0法0]散列[0法0]147 11.3.2 乘[0法0]散列[0法0]148 11.3.3 全域散列[0法0]148 11.4 开放寻址[0法0]151 11.5 完全散列156 思考题158 本章注记160 [0第0]12章 二叉搜索树161 12.1 什么是二叉搜索树161 12.2 查询二叉搜索树163 12.3 插入和删除165 12.4 随机构建二叉搜索树169 思考题171 本章注记173 [0第0]13章 红黑树174 13.1 红黑树的性质174 13.2 旋转176 13.3 插入178 13.4 删除183 思考题187 本章注记191 [0第0]14章 数据结构的扩张193 14.1 动态顺序统计193 14.2 如何扩张数据结构196 14.3 区间树198 思考题202 本章注记202 [0第0]四部分 高级设计和分析技术 [0第0]15章 动态规划204 15.1 钢条切割204 15.2 矩阵链乘[0法0]210 15.3 动态规划原理215 15.4 长公共子序列222 15.5 [0优0]二叉搜索树226 思考题231 本章注记236 [0第0]16章 贪心算[0法0]237 16.1 活动选择问题237 16.2 贪心算[0法0]原理242 16.3 赫夫曼编码245 16.4 拟阵和贪心算[0法0]250 16.5 用拟阵求解任务调度问题253 思考题255 本章注记257 [0第0]17章 摊还分析258 17.1 聚合分析258 17.2 核算[0法0]261 17.3 势能[0法0]262 17.4 动态表264 17.4.1 表扩张265 17.4.2 表扩张和收缩267 思考题270 本章注记273 [0第0]五部分 高级数据结构 [0第0]18章 B树277 18.1 B树的定义279 18.2 B树上的基本操作281 18.3 从B树中删除关键字286 思考题288 本章注记289 [0第0]19章 斐波那契堆290 19.1 斐波那契堆结构291 19.2 可合并堆操作292 19.3 关键字减值和删除一个结点298 19.4 [0大0]度数的界300 思考题302 本章注记305 [0第0]20章 van Emde Boas树306 20.1 基本方[0法0]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 [0第0]21章 用于不相交集合的数据结构324 21.1 不相交集合的操作324 21.2 不相交集合的链表表示326 21.3 不相交集合森林328 *21.4 带路径压缩的按秩合并的分析331 思考题336 本章注记337 [0第0]六部分 图算[0法0] [0第0]22章 基本的图算[0法0]341 22.1 图的表示341 22.2 广度[0优0]先搜索343 22.3 深度[0优0]先搜索349 22.4 拓扑排序355 22.5 强连通分量357 思考题360 本章注记361 [0第0]23章 小生成树362 23.1 小生成树的形成362 23.2 Kruskal算[0法0]和Prim算[0法0]366 思考题370 本章注记373 [0第0]24章 单源短路径374 24.1 Bellman�睩ord算[0法0]379 24.2 有向无环图中的单源短路径问题381 24.3 Dijkstra算[0法0]383 24.4 差分约束和短路径387 24.5 短路径性质的证明391 思考题395 本章注记398 [0第0]25章 所有结点对的短路径问题399 25.1 短路径和矩阵乘[0法0]400 25.2 Floyd�瞁arsh[0all0]算[0法0]404 25.3 用于稀疏图的Johnson算[0法0]409 思考题412 本章注记412 [0第0]26章 [0大0]流414 26.1 流网络414 26.2 Ford�睩ulkerson方[0法0]418 26.3 [0大0]二分匹配428 26.4 推送重贴标签算[0法0]431 26.5 前置重贴标签算[0法0]438 思考题446 本章注记449 [0第0]七部分 算[0法0]问题选编 [0第0]27章 多线程算[0法0]453 27.1 动态多线程基础454 27.2 多线程矩阵乘[0法0]465 27.3 多线程归并排序468 思考题472 本章注记476 [0第0]28章 矩阵运算478 28.1 求解线性方程组478 28.2 矩阵求逆486 28.3 对称正定矩阵和小二乘逼近489 思考题493 本章注记494 [0第0]29章 线性规划495 29.1 标准型和松弛型499 29.2 将问题表达为线性规划504 29.3 单纯形算[0法0]507 29.4 对偶性516 29.5 初始基本可行解520 思考题525 本章注记526 [0第0]30章 多项式与快速傅里叶变换527 30.1 多项式的表示528 30.2 DFT与FFT531 30.3 高效FFT实现536 思考题539 本章注记541 [0第0]31章 数论算[0法0]543 31.1 基础数论概念543 31.2 [0大0]公约数547 31.3 模运算550 31.4 求解模线性方程554 31.5 中[0国0]余数定理556 31.6 元素的幂558 31.7 RSA公钥加密系统561 31.8 素数的测试565 31.9 整数的因子分解571 思考题574 本章注记576 [0第0]32章 字符串匹配577 32.1 朴素字符串匹配算[0法0]578 32.2 Rabin�睰arp算[0法0]580 32.3 利用有限自动机进行字符串匹配583 32.4 Knuth�睲orris�睵ratt算[0法0]588 思考题594 本章注记594 [0第0]33章 计算几何[0学0]595 33.1 线段的性质595 33.2 确定任意一对线段是否相交599 33.3 寻找凸包604 33.4 寻找近点对610 思考题613 本章注记615 [0第0]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 [0顶0]点覆盖问题640 34.5.3 哈密顿回路问题641 34.5.4 旅行[0商0]问题644 34.5.5 子集和问题645 思考题647 本章注记649 [0第0]35章 近似算[0法0]651 35.1 [0顶0]点覆盖问题652 35.2 旅行[0商0]问题654 35.2.1 满足三角不等式的旅行[0商0]问题654 35.2.2 一般旅行[0商0]问题656 35.3 集合覆盖问题658 35.4 随机化和线性规划661 35.5 子集和问题663 思考题667 本章注记669 [0第0]八部分 附录:数[0学0]基础[0知0]识 附录A 求和672 A.1 求和公式及其性质672 A.2 确定求和时间的界674 思考题678 附录注记678 附录B 集合等离散数[0学0]内容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 |
这本书的章节结构安排,体现了一种非常清晰的、循序渐进的学习路径。它不像有些教科书那样,把所有相关主题胡乱堆砌在一起,而是遵循了“从简单到复杂,从基础到高级”的逻辑主线。开篇对计算模型和基本数据结构的回顾,奠定了必要的预备知识,确保了即便是自学入门者也不会因为基础不牢而掉队。紧接着,对排序、查找这类经典问题的深入剖析,为后续更复杂的图论和NP完全性理论打下了坚实的逻辑基础。更妙的是,作者在引入一个新算法家族时,总会先用一个直观的、生活化的例子来类比,比如用交通网络的规划来解释图搜索算法的效率考量。这种由浅入深的组织方式,极大地降低了学习曲线的陡峭程度。读起来的感觉就像是跟着一位经验丰富、条理清晰的大学教授上课,他总能预判到学生可能在哪里产生困惑,并提前准备好解决疑惑的“小拐杖”,让人感觉学习的每一步都是踏实且有保障的。
评分相比于市面上其他动辄将近千页的巨著,这本书在信息密度和实用价值的平衡上做得近乎完美。它没有过度陷入某些特定领域(比如机器学习中的特定优化器)的细节泥潭,而是聚焦于计算机科学领域那些具有普适性和基础性的算法思想。这意味着,无论你未来是想从事操作系统、编译原理、还是网络通信,书中所讲解的核心思想都能为你提供一个通用的思维框架。例如,关于“贪心策略”和“分治法”的讨论,其思想可以横跨许多看似不相关的领域。此外,书本中提供的习题设计也相当巧妙,它们不仅仅是简单的代码实现测试,更多的是引导读者去思考算法的局限性、如何进行优化以及如何将理论应用于实际场景的开放性问题。这种注重“算法思维”而非“代码实现堆砌”的导向,使得这本书成为了一个真正能提升读者综合计算素养的优秀读物,值得反复研读和收藏。
评分这本书的理论深度和广度,远远超出了我对一本“导论”级别教材的预期。它并非仅仅满足于讲解核心算法的伪代码和时间复杂度分析,而是深入挖掘了每种算法背后的数学原理和思想根源。例如,在讲解动态规划时,作者并没有急于抛出最优子结构和重叠子问题的概念,而是通过几个经典的、富有启发性的例子,引导读者自己去体会问题的结构特性,最终自然而然地推导出递推关系式。这种“启发式教学”的思路,真正做到了“授人以渔”,让读者在理解“是什么”的同时,更深刻地理解了“为什么会是这样”。对于我这种希望不仅仅是应用算法,而是想深入研究算法优化和改进的读者来说,这种对基础理论的夯实至关重要。它提供了一个坚实的理论基石,让我在面对新的、未曾见过的组合优化问题时,也能迅速地将其分解,并尝试套用已有的范式进行建模和求解,而不是仅仅停留在查阅现成方案的层面。
评分这本书的装帧设计真是让人眼前一亮。封面选用了沉稳的深蓝色调,配上醒目的白色和橙色字体,既有学术的严谨感,又不失现代设计的活力。纸张的质感也相当出色,不是那种过于光滑的反光纸,而是带有轻微纹理的哑光纸,拿在手里沉甸甸的,给人一种“分量十足”的可靠感。尤其值得一提的是,内页的排版布局非常人性化。大段的文字和密集的公式被巧妙地穿插在清晰的图示和例题解析之中,使得原本可能枯燥的理论学习过程变得更加直观易懂。很多算法书的插图都是那种简单的线条图,而这本的图例绘制得非常精美,不仅准确表达了算法的执行流程,连细节处的变量变化都描绘得一清二楚,这对于初学者快速建立空间想象和逻辑推演能力是极大的帮助。而且,书本的装订工艺看起来很扎实,即使经常翻阅和在不同地方做标记,也不用担心书脊会轻易脱胶或散页。这种对细节的关注,无疑体现了出版方在向读者提供高质量阅读体验上的用心良苦,让人在捧读之初就对接下来要学习的内容充满了期待和敬意。
评分我个人非常欣赏本书在算法分析严谨性方面所下的功夫。很多教材为了简化篇幅,往往会用比较模糊的语言带过复杂度证明,或者干脆只给出一个结论。但这本教材则不然,它对最坏情况、最好情况和平均情况的分析都给出了详尽的数学论证,并且对于非多项式时间复杂度的概念,也进行了充分的铺垫和讨论。特别是关于概率分析和摊还分析(Amortized Analysis)那几章,处理得尤为出色。作者没有把它们当作可有可无的“花絮”,而是将其视为理解现代高效算法不可或缺的一部分。通过大量的数学归纳法和积分不等式的应用,读者可以清晰地看到如何从微观的单步操作分析,上升到对整体运行效率的宏观把握。这种对“为什么快”的深究,远比仅仅知道“它很快”更有价值,它培养的不仅仅是编程技巧,更是一种对计算效率的批判性思维。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有