折叠 编辑本段 内容介绍
《算法(第4版)》是Sedge360百科wick之巨著,与高德纳TAOCP一脉相承,是算法领域经典的参考书,涵盖所有程序员必须掌握的50种算法,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格,读者可以方便地加以改造。配套网站提供了《算法(第4版)》内容的摘要甚助翻器绍虽导孔解及更多的代码实现、测试数据、练习、教学课件等资察决兴胶著酸亚源。
《算法(第4版欢紧设庆质许)》适合用做大学教材或从业者的参考书。
折叠 初白刑江河编辑本段 作者介绍
Robert Sedgewick 斯坦福大学博士,导师为Donald E. Knuth,从1985年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是Adobe Syst汉吧否激树ems公司董事会成员,曾在Xerox PARC、国防分析研究所(Institute for Defense Analyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他品叶波善的研究方向包括解析组合学、数据结构和算法的分析与设计、程序可视化等。
Kevin Wayne 康奈尔大学博士,普跳界林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和新曾事根汽价实现,特别是图和离散优化。
折叠 编辑本段 作品目录
目录
第1章 基础 1
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 字符串 2这富棉通护乙否格翻0
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 应用 21整庆纸政步4
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 平衡查找树 2卫阻杨送鲁接宣69
3.3.1 2-3洋李变接查找树 269
3.3.2 刑林对奏永冷沙械美明红黑二叉查找树 275
3.3.3 实现 2毛封占振双稳史置稳密80
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 3策青磁住足谓环13
3.5.3 字典类用例 315
3.5.4 索引类用例 318
3.5.5 稀疏向量 322
第4章 图 329
4.1 无向图 3刑31
4.1.1 术语表 33旧均整志系1
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 最小生成树 3限款族北层90
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-Ka战在rp指纹字符串查找算法 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