
| 《算法引论:一种创造性方法》是国际算法大师乌迪?曼博(UdiManber)博士撰写的一本享有盛誉的著作,强调了算法设计的创造性方面,通过算法开发步骤来描述算法设计过程。此外,《算法引论:一种创造性方法》创造性地将算法设计过程同定理归纳证明过程进行类比,揭示了算法设计的基本思想和本质,旨在提高读者的问题求解以及理解算法设计的过程和思想的能力。 《算法引论:一种创造性方法》特点: 包括经典算法以及流行算法 算法设计技巧及其综合应用 并行算法设计 犬多数算法的伪代码表示 500多道习题,其中四分之一给出了答案 将算法实现细节和算法思想尽可能分离 |
| 作者:(美国)乌迪 曼博(Udi Manber) 译者:黄林鹏 谢瑾奎 陆首博 等 曼博(Udi Manber),美国著名的计算机科学家,国际公认的算法大师,在线信息搜索引擎的先驱。1982年于华盛顿大学获得计算机科学博士学位,曾是美国亚利桑那大学计算机专业教授。离开学校后在雅虎公司担任执行官,闫前是亚马逊(Amazon.com)的副总裁和首席算法师(CAO),也是亚马逊旗下搜索网站A9.corn的首席执行官。他提出的UDI测试已经成为衡量搜索引擎质量的评估标准。 |
| 第1章 引论1 第2章 数学归纳法6 2.1 引言6 2.2 三个简单的例子7 2.3 平面内区域的计数8 2.4 简单的着色问题10 2.5 复杂一些的加法题10 2.6 一个简单的不等式11 2.7 欧拉公式12 2.8 图论中的一个问题13 2.9 格雷码14 2.10 在图上寻找无重边的路16 2.11 数学平均数和几何平均数定理17 2.12 循环不变量:将十进制数转换为二进制数19 2.13 常见的错误20 2.14 小结21 第3章 算法分析27 3.1 引言27 3.2 符号O28 3.3 时间与空间复杂度30 3.4 求和31 3.5 递推关系33 3.5.1 巧妙地猜测34 3.5.2 分治关系36 3.5.3 涉及全部历史的递推关系37 3.6 一些有用的证明论据39 3.7 小结40 第4章 数据结构简介44 4.1 引言44 4.2 基本数据结构44 4.2.1 元素44 4.2.2 数组45 4.2.3 记录45 4.2.4 链表46 4.3 树47 4.3.1 树的表示48 4.3.2 堆49 4.3.3 二叉搜索树51 4.3.4 AVL树54 4.4 散列56 4.5 合并?查找问题58 4.6 图60 4.7 小结61 第5章 基于归纳的算法设计66 5.1 引言66 5.2 多项式求值66 5.3 最大导出子图68 5.4 寻找一对一映射69 5.5 社会名流问题71 5.6 分治算法:轮廓问题73 5.7 在二叉树中计算平衡因子75 5.8 寻找最大连续子序列76 5.9 增强归纳假设77 5.10 动态规划:背包问题77 5.11 常见的错误80 5.12 小结80 第6章 序列和集合的算法85 6.1 引言85 6.2 二叉搜索的几种形式85 6.2.1 纯二叉搜索85 6.2.2 循环序列的二叉搜索86 6.2.3 二叉搜索特殊下标86 6.2.4 二叉搜索长度未知的序列88 6.2.5 重叠子序列问题88 6.2.6 解方程89 6.3 内插搜索89 6.4 排序90 6.4.1 桶排序和基数排序90 6.4.2 插入排序和选择排序92 6.4.3 归并排序93 6.4.4 快速排序93 6.4.5 堆排序98 6.4.6 排序问题的下界100 6.5 顺序统计102 6.5.1 最大数和最小数102 6.5.2 查找第k小的数102 6.6 数据压缩103 6.7 串匹配105 6.8 序列比较110 6.9 概率算法112 6.9.1 随机数113 6.9.2 着色问题114 6.9.3 将拉斯维加斯算法变换成确定性算法114 6.10 查找众数116 6.11 三个展现有趣证明方法的问题118 6.11.1 最长递增序列118 6.11.2 查找集合中两个最大的元素119 6.11.3 计算多重集合的模121 6.12 小结122 第7章 图算法130 7.1 引言130 7.2 欧拉图131 7.3 图的遍历133 7.3.1 深度优先搜索133 7.3.2 广度优先搜索139 7.4 拓扑排序140 7.5 单源最短路径142 7.6 最小代价生成树146 7.7 全部最短路径150 7.8 传递闭包151 7.9 图的分解153 7.9.1 双连通分支153 7.9.2 强连通分支159 7.9.3 利用图分解的例子164 7.10 匹配166 7.10.1 非常稠密图中的完美匹配166 7.10.2 偶图匹配167 7.11 网络流量169 7.12 哈密尔顿旅行173 7.12.1 反向归纳173 7.12.2 在非常稠密图中找哈密尔顿回路173 7.13 小结174 第8章 几何算法188 8.1 引言188 8.2 判定点是否在多边形内部189 8.3 构造简单多边形191 8.4 凸包193 8.4.1 直接方法193 8.4.2 礼品包裹算法194 8.4.3 Graham扫描算法195 8.5 最近点对197 8.6 水平线段和竖直线段的交点200 8.7 小结203 第9章 代数和数值算法207 9.1 引言207 9.2 求幂运算207 9.3 欧几里得算法210 9.4 多项式乘法211 9.5 矩阵乘法212 9.5.1 Winograd算法212 9.5.2 Strassen算法213 9.5.3 布尔矩阵215 9.6 快速傅里叶变换218 9.7 小结224 第10章 归约228 10.1 引言228 10.2 归约的例子229 10.2.1 简单字符串匹配问题229 10.2.2 特殊代表集229 10.2.3 关于序列比较的归约230 10.2.4 在无向图中寻找三角形231 10.3 有关线性规划的归约232 10.3.1 概述与定义232 10.3.2 归约到线性规划的例子233 10.4 下界的归约235 10.4.1 寻找简单多边形算法复杂度的下界235 10.4.2 关于矩阵的简单归约236 10.5 常见的错误237 10.6 小结238 第11章 NP完全问题242 11.1 引言242 11.2 多项式时间归约242 11.3 非确定性和Cook定理244 11.4 NP完全性的证明例子246 11.4.1 顶点覆盖问题246 11.4.2 支配集问题247 11.4.3 3SAT问题248 11.4.4 团问题249 11.4.5 3着色问题250 11.4.6 一般经验251 11.4.7 更多的NP完全问题252 11.5 处理NP完全问题的技术253 11.5.1 回溯法和分枝限界法254 11.5.2 确保性能的近似算法257 11.6 小结261 第12章 并行算法266 12.1 引言266 12.2 并行计算模型267 12.3 共享存储器算法268 12.3.1 并行加268 12.3.2 寻找最大数的算法269 12.3.3 并行前缀问题271 12.3.4 在链表中查寻秩273 12.3.5 欧拉遍历技术274 12.4 互连网络上的算法275 12.4.1 阵列上的排序276 12.4.2 排序网络279 12.4.3 在树中查找第k个最小元素280 12.4.4 网孔上的矩阵乘法283 12.4.5 超立方体中的路由284 12.5 脉动计算286 12.5.1 矩阵与向量相乘286 12.5.2 卷积问题287 12.5.3 序列的比较288 12.6 小结290 部分习题答案296 参考文献317 |
商品评论(0条)