目录 第0章 序言 0.1 书籍和算法 0.2 从Fibonacci数列开始 0.3 大O符号 习题 第1章 数字的算法 1.1 基本算术 1.1.1 加法 1.1.2 乘法和除法 1.2 模运算 1.2.1 模的加法和乘法 1.2.2 模的指数运算 1.2.3 Euclid的最大公因数算法 1.2.4 Euclid算法的一种扩展 1.2.5 模的除法 1.3 素性测试 1.4 密码学 1.4.1 密钥机制:一次一密乱码本和AES 1.4.2 RSA 1.5 通用散列表 1.5.1 散列表 1.5.2 散列函数族 习题 第2章 分治算法 2.1 乘法 2.2 递推式 2.3 合并排序 2.4 寻找中项 2.5 矩阵乘法 2.6 快速Fourier变换 2.6.1 多项式的另一种表示法 2.6.2 计算步骤的分治实现 2.6.3 插值 2.6.4 快速Fourier变换的细节 习题 第3章 图的分解 3.1 为什么是图 3.2 无向图的深度优先搜索 3.2.1 迷宫探索 3.2.2 深度优先搜索 3.2.3 无向图的连通性 3.2.4 前序和后序 3.3 有向图的深度优先搜索 3.3.1 边的类型 3.3.2 有向无环图 3.4 强连通部件 3.4.1 定义有向图的连通性 3.4.2 一个有效的算法 习题 第4章 图中的路径 4.1 距离 4.2 广度优先搜索 4.3 边的长度 4.4 Dijkstra算法 4.4.1 广度优先搜索的一个改进 4.4.2 另一种解释 4.4.3 运行时间 4.5 优先队列的实现 4.5.1 数组 4.5.2 二分堆 4.5.3 d堆 4.6 含有负边的图的最短路径 4.6.1 负边 4.6.2 负环 4.7 有向无环图中的最短路径 习题 第5章 贪心算法 5.1 最小生成树 5.1.1 一个贪心方法 5.1.2 分割性质 5.1.3 Kruskal算法 5.1.4 一种用于分离集的数据结构 5.1.5 Prim算法 5.2 Huffman编码 5.3 Horn公式 5.4 集合覆盖 习题 第6章 动态规划 6.1 重新审视有向无环图的最短路径问题 6.2 最长递增子序列 6.3 编辑距离 6.4 背包问题 6.5 矩阵链式相乘 6.6 最短路径问题 6.7 树中的独立集 习题 第7章 线性规划与归约 7.1 线性规划简介 7.1.1 示例:利润最大化 7.1.2 示例:生产计划 7.1.3 示例:最优带宽分配 7.1.4 线性规划的变体 7.2 网络流 7.2.1 石油运输 7.2.2 最大流 7.2.3 对算法的深入观察 7.2.4 最优性的保证 7.2.5 算法的效率 7.3 二部图的匹配 7.4 对偶 7.5 零和博弈(游戏) 7.6 单纯形算法 7.6.1 n维空间中的顶点和邻居 7.6.2 算法 7.6.3 补遗 7.6.4 单纯形法的运行时间 7.7 后记:电路值1 习题 第8章 NP-完全问题 8.1 搜索问题 8.2 NP-完全问题 8.3 所有的归约 习题 第9章 NP-完全问题的处理 9.1 智能穷举搜索 9.1.1 回溯 9.1.2 分支定界 9.2 近似算法 9.2.1 顶点覆盖 9.2.2 聚类 9.2.3 TSP 9.2.4 背包问题 9.2.5 逼近的层次 9.3 局部搜索中的启发方法 9.3.1 重新审视旅行商问题 9.3.2 图划分 9.3.3 处理局部最优 习题 第10章 量子算法 10.1 量子位元、叠加状态和度量 10.2 算法设计 10.3 量子傅立叶变换 10.4 周期性 10.5 量子电路 10.5.1 基本量子门 10.5.2 量子电路的两种基本类型 10.5.3 量子傅立叶变换电路 10.6 将因子分解问题转化为周期求解问题 10.7 因子分解的量子算法 习题 历史背景及深入阅读的资
2022-05-25 10:53:04 53.87MB 算法 SanjoyDasgu 数据结构 编程
1
作者:Sanjoy Dasgupta / Christos Papadimitriou / Umesh Vazirani 书名:Algorithms 备注:高清英文原版,带书签
2022-05-07 17:28:08 4.47MB Algorithms Sanjoy Christos Umesh
1