出版社: 人民邮电出版社
出品方: 图灵教育
原作名: Algorithms
译者: 谢路云
出版年: 2012-10-1
页数: 636
定价: 99.00元
装帧: 平装
丛书: 图灵程序设计丛书
ISBN: 9787115293800
内容简介 · · · · · ·
本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些 Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。配套网站 algs4.cs.princeton.edu 提供了本书内容摘要以及相关代码、测试数据、编程练习、教学课件等资源。
算法(第4版)的创作者
· · · · · ·
-
塞奇威克 作者
作者简介 · · · · · ·
Robert Sedgewick,斯坦福大学博士(导师是Donald E. Knuth),从1985年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是Adobe Systems公司董事会成员,曾在Xerox PARC、国防分析研究所(Institute for Defense Analyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他的研究方向包括解析组合学、数据结构和算法的分析与设计、程序可视化等。
Kevin Wayne,康奈尔大学博士,普林斯顿大学计算机科学系高级讲师。研究方向包括算法的设计、分析和实现,特别是图和离散优化。
目录 · · · · · ·
1.1 基础编程模型 4
1.1.1 Java程序的基本结构 4
1.1.2 原始数据类型与表达式 6
1.1.3 语句 8
1.1.4 简便记法 9
· · · · · · (更多)
1.1 基础编程模型 4
1.1.1 Java程序的基本结构 4
1.1.2 原始数据类型与表达式 6
1.1.3 语句 8
1.1.4 简便记法 9
1.1.5 数组 10
1.1.6 静态方法 12
1.1.7 API 16
1.1.8 字符串 20
1.1.9 输入输出 21
1.1.10 二分查找 28
1.1.11 展望 30
1.2 数据抽象 38
1.2.1 使用抽象数据类型 38
1.2.2 抽象数据类型举例 45
1.2.3 抽象数据类型的实现 52
1.2.4 更多抽象数据类型的实现 55
1.2.5 数据类型的设计 60
1.3 背包、队列和栈 74
1.3.1 API 74
1.3.2 集合类数据类型的实现 81
1.3.3 链表 89
1.3.4 综述 98
1.4 算法分析 108
1.4.1 科学方法 108
1.4.2 观察 108
1.4.3 数学模型 112
1.4.4 增长数量级的分类 117
1.4.5 设计更快的算法 118
1.4.6 倍率实验 121
1.4.7 注意事项 123
1.4.8 处理对于输入的依赖 124
1.4.9 内存 126
1.4.10 展望 129
1.5 案例研究:union-find算法 136
1.5.1 动态连通性 136
1.5.2 实现 140
1.5.3 展望 148
第2章 排序 152
2.1 初级排序算法 153
2.1.1 游戏规则 153
2.1.2 选择排序 155
2.1.3 插入排序 157
2.1.4 排序算法的可视化 159
2.1.5 比较两种排序算法 159
2.1.6 希尔排序 162
2.2 归并排序 170
2.2.1 原地归并的抽象方法 170
2.2.2 自顶向下的归并排序 171
2.2.3 自底向上的归并排序 175
2.2.4 排序算法的复杂度 177
2.3 快速排序 182
2.3.1 基本算法 182
2.3.2 性能特点 185
2.3.3 算法改进 187
2.4 优先队列 195
2.4.1 API 195
2.4.2 初级实现 197
2.4.3 堆的定义 198
2.4.4 堆的算法 199
2.4.5 堆排序 205
2.5 应用 214
2.5.1 将各种数据排序 214
2.5.2 我应该使用哪种排序算法 218
2.5.3 问题的归约 219
2.5.4 排序应用一览 221
第3章 查找 227
3.1 符号表 228
3.1.1 API 228
3.1.2 有序符号表 230
3.1.3 用例举例 233
3.1.4 无序链表中的顺序查找 235
3.1.5 有序数组中的二分查找 238
3.1.6 对二分查找的分析 242
3.1.7 预览 244
3.2 二叉查找树 250
3.2.1 基本实现 250
3.2.2 分析 255
3.2.3 有序性相关的方法与删除操作 257
3.3 平衡查找树 269
3.3.1 2-3查找树 269
3.3.2 红黑二叉查找树 275
3.3.3 实现 280
3.3.4 删除操作 282
3.3.5 红黑树的性质 284
3.4 散列表 293
3.4.1 散列函数 293
3.4.2 基于拉链法的散列表 297
3.4.3 基于线性探测法的散列表 300
3.4.4 调整数组大小 304
3.4.5 内存使用 306
3.5 应用 312
3.5.1 我应该使用符号表的哪种实现 312
3.5.2 集合的API 313
3.5.3 字典类用例 315
3.5.4 索引类用例 318
3.5.5 稀疏向量 322
第4章 图 329
4.1 无向图 331
4.1.1 术语表 331
4.1.2 表示无向图的数据类型 333
4.1.3 深度优先搜索 338
4.1.4 寻找路径 342
4.1.5 广度优先搜索 344
4.1.6 连通分量 349
4.1.7 符号图 352
4.1.8 总结 358
4.2 有向图 364
4.2.1 术语 364
4.2.2 有向图的数据类型 365
4.2.3 有向图中的可达性 367
4.2.4 环和有向无环图 369
4.2.5 有向图中的强连通性 378
4.2.6 总结 385
4.3 最小生成树 390
4.3.1 原理 391
4.3.2 加权无向图的数据类型 393
4.3.3 最小生成树的API和测试用例 396
4.3.4 Prim算法 398
4.3.5 Prim算法的即时实现 401
4.3.6 Kruskal算法 404
4.3.7 展望 407
4.4 最短路径 412
4.4.1 最短路径的性质 413
4.4.2 加权有向图的数据结构 414
4.4.3 最短路径算法的理论基础 420
4.4.4 Dijkstra算法 421
4.4.5 无环加权有向图中的最短路径算法 425
4.4.6 一般加权有向图中的最短路径问题 433
4.4.7 展望 445
第5章 字符串 451
5.1 字符串排序 455
5.1.1 键索引计数法 455
5.1.2 低位优先的字符串排序 458
5.1.3 高位优先的字符串排序 461
5.1.4 三向字符串快速排序 467
5.1.5 字符串排序算法的选择 470
5.2 单词查找树 474
5.2.1 单词查找树 475
5.2.2 单词查找树的性质 483
5.2.3 三向单词查找树 485
5.2.4 三向单词查找树的性质 487
5.2.5 应该使用字符串符号表的哪种实现 489
5.3 子字符串查找 493
5.3.1 历史简介 493
5.3.2 暴力子字符串查找算法 494
5.3.3 Knuth-Morris-Pratt子字符串查找算法 496
5.3.4 Boyer-Moore字符串查找算法 502
5.3.5 Rabin-Karp指纹字符串查找算法 505
5.3.6 总结 509
5.4 正则表达式 514
5.4.1 使用正则表达式描述模式 514
5.4.2 缩略写法 516
5.4.3 正则表达式的实际应用 517
5.4.4 非确定有限状态自动机 518
5.4.5 模拟NFA的运行 520
5.4.6 构造与正则表达式对应的
5.5 数据压缩 529
5.5.1 游戏规则 529
5.5.2 读写二进制数据 530
5.5.3 局限 533
5.5.4 热身运动:基因组 534
5.5.5 游程编码 537
5.5.6 霍夫曼压缩 540
第6章 背景 558
索引 611
· · · · · · (收起)
"算法(第4版)"试读 · · · · · ·
第 1章基础 本书的目的是研究多种重要而实用的算法,即适合用计算机实现的解决问题的方法。和算法关系最紧密的是数据结构,即便于算法操作的组织数据的方法。本章介绍的就是学习算法和数据结构所需要的基本工具。 首先要介绍的是我们的基础编程模型。本书中的程序只用到了 Java语言的一小部分,以及我们自己编写的用于封装输入输出以及统计的一些库。 1.1节总结了相关的语法、语...
丛书信息
· · · · · ·
喜欢读"算法(第4版)"的人也喜欢的电子书 · · · · · ·
喜欢读"算法(第4版)"的人也喜欢 · · · · · ·
- 算法导论(原书第3版) 9.3
- 深入理解计算机系统(原书第3版) 9.7
- Linux/UNIX系统编程手册 9.4
- 操作系统导论 9.3
- UNIX环境高级编程(第3版) 9.7
- 编码 9.3
- 算法图解 8.4
- 现代操作系统(第3版) 8.9
算法(第4版)的书评 · · · · · · ( 全部 39 条 )
> 更多书评 39篇
论坛 · · · · · ·
可以先不用做课后题 | 来自Crrush | 2023-09-27 01:38:16 | |
关于本书KMP算法构造DFA部分,有人看明白了吗? | 来自zgw | 12 回应 | 2022-11-17 23:13:31 |
贴一个本书的勘误表 | 来自NullReference | 8 回应 | 2022-05-03 17:08:57 |
哪位大佬有所有题目答案的链接不? | 来自珠海扛把子 | 2021-10-28 23:34:10 | |
大家啃这本书从头到尾花了多长时间? | 来自冰块 | 2021-07-14 23:45:19 |
> 浏览更多话题
这本书的其他版本 · · · · · · ( 全部5 )
-
Addison-Wesley Professional (2011)9.5分 257人读过
-
人民邮电出版社 (2012)9.3分 537人读过
-
-
Addison-Wesley Pub (Sd) (1988)暂无评分 2人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
- 豆瓣读书评分9分以上榜单 (无人的冬夜)
- 书单 | 千评9分书 (Sheryl)
- 闲着没事读读书(四) (鹿小羽)
- 豆瓣9分以上计算机图书 (晚安,本杰明)
- 好教材 (二赫)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于算法(第4版)的评论:
feed: rss 2.0
8 有用 豆友67935223 2013-04-11 20:26:24
这本书也非常牛,用java实现,我觉得这本书是最适合用来算法入门的,说它适合入门不是说它太浅,而是讲的深入浅出,非常容易理解,里面那些小彩图呀,啧啧,美极了!建议中英对照着读。
8 有用 gzxnr 2018-05-03 23:26:19
最近在跟着Coursera的课程学习这本书,相比于本科时候学的《算法导论》,我觉得这本书更注重实践。整本书的算法由Java实现,和JVM特性结合紧密,比如计算内存的占有量;再一个是和数据结构的紧密结合。《算法导论》的代码是由伪代码组成,我觉得它有点不适合在coding方面还是新手的学生学习,当然它对P/NP问题的探讨要更深入。不过作为一个实践派我还是更推荐这本书。或许就是学术和工程之别了。
1 有用 陳長安 2018-11-21 17:37:12
深入浅出真的是本事
4 有用 谢谢所有的鱼 2020-11-06 17:50:53
买了原著但是没怎么读,学是学了黑马根据这本书编写的java数据结构与算法课程
6 有用 无情小猫咪🐈 2016-08-14 17:05:03
在从北京路回来的地铁8号线上,路过中大站的时候读完,读得挺坎坷的一本书。书的内容还好,就是算法性能分析方面过于简略,有点吃力
0 有用 一千零一灯 2024-03-10 02:25:42 广东
非常锻炼耐心。
0 有用 干嘛 2024-03-05 15:40:12 四川
好书
0 有用 ljy1156 2024-02-18 15:27:52 河北
推荐读2 3 4章,5.3开始不知道是写的不好还是能力有限,读起来很困难,硬读了一遍代码勉强留了个印象。
0 有用 月色血风暴 2024-01-27 18:28:51 广东
读起来深入浅出的一本书,第一次让我感觉阅读技术书籍竟然可以这么轻松。特别是讲红黑树,是我见过所有讲红黑树的书中最好的。它先是讲2-3树,然后说红黑树可以由2-3树变形过去,当时觉得简直太神奇了,
0 有用 书读完了 2024-01-22 20:12:52 北京
收获颇多。