本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
内容简介 | |
本书提供了对当代计算机算法研究的一个全面、综合性的介绍。全书共八部分,内容涵盖基础知识、排序和顺序统计量、数据结构、*级设计和分析技术、*级数据结构、图算法、算法问题选编,以及数学基础知识。书中深入浅出地介绍了大量的算法及相关的数据结构,以及用于解决一些复杂计算问题的*级策略(如动态规划、贪心算法、摊还分析等),重点在于算法的分析与设计。对于每一个专题,作者都试图提供目前*新的研究成果及样例解答,并通过清晰的图示来说明算法的执行过程。此外,全书包含957道练习和158道思考题,并且作者在wangzhan上给出了部分题的答案。 本书内容丰富,叙述深入浅出,适合作为计算机及相关专业本科生数据结构课程和研究生算法课程的教材,同时也适合专业技术人员参考使用。 |
目录 | |
目 录 Introduction to Algorithms,Third Edition 出版者的话 译者序 前言 *一部分 基础知识 *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. |