![]()
内容推荐 本书介绍了算法设计与分析的基本技巧,主要包括递归、分治、动态规划、贪心和随机等算法,以及利用这些算法求解计算问题的时间复杂度分析等内容。通过诸多有趣的实例,向读者介绍了算法设计的思想,以便读者能形成算法思维的固定模式去解决问题。在介绍每一类算法范式以及分析算法复杂度时,都力求建立直观的思维过程,而摒弃过深的数学证明。书中所有算法均采用Python语言描述,读者能从中学习到许多算法实现的技巧,从而提高编写程序的能力。 本书可作为高等学校计算机专业大一、大二或者学习过程序设计的非计算机专业学生的算法设计与分析教材。 目录 第1章 引言 1.1 算法的定义 1.1.1 算法的属性 1.1.2 效率的定义 1.2 算法设计与分析举例 1.2.1 寻找局部高点-1D 1.2.2 图书管理 1.3 小结 课后习题 第2章 渐进分析与Python计算模型 2.1 引言 2.2 计算模型 2.3 算法的渐进分析 2.4 Python计算模型 2.4.1 控制流语句 2.4.2 数据结构 2.5 算法分析实例 2.5.1 求最大值 2.5.2 二分搜索 2.5.3 子集和问题 2.6 小结 课后习题 第3章 问题求解与代码优化 3.1 引言 3.2 文档比较 3.2.1 问题提出 3.2.2 算法设计 3.2.3 算法优化 3.3 拼写矫正 3.3.1 问题提出 3.3.2 算法设计 3.4 稳定匹配问题 3.4.1 问题提出 3.4.2 算法设计 3.5 小结 课后习题 第4章 递归算法与递归函数 4.1 引言 4.2 递归的组成结构 4.2.1 如何筹集巨款 4.2.2 上线与下线 4.3 递归算法的执行 4.3.1 跟踪函数的执行 4.4 利用递归算法求解问题 4.4.1 回文判断 4.4.2 全排列 4.4.3 汉诺塔问题 4.4.4 雪花曲线 4.5 递归函数的求解 4.5.1 替换法 4.5.2 主分析法 4.6 小结 课后习题 第5章 排序与树结构 5.1 引言 5.2 递归与排序 5.2.1 选择排序 5.2.2 插入排序 5.2.3 合并排序 5.3 二叉搜索树 5.3.1 BST的实现 5.3.2 插入新结点 5.3.3 BST上查找 5.3.4 二叉树修剪 5.4 堆 5.4.1 堆化操作 5.4.2 构造堆 5.4.3 堆排序 5.4.4 合并k个有序序列 5.5 小结87课后习题 第6章 分治算法 6.1 引言 6.2 股票的买卖 6.2.1 问题描述 6.2.2 算法设计 6.3 统计逆序 6.3.1 问题描述 6.3.2 算法设计 6.4 空间最小距离点对 6.4.1 问题描述 6.4.2 算法设计 6.5 寻找第k小的数 6.5.1 问题描述 6.5.2 算法设计 6.6 大整数乘法 6.6.1 问题描述 6.6.2 算法设计 6.7 小结 课后习题 第7章 图搜索算法 7.1 引言 7.2 图搜索的应用 7.3 图的表示 7.4 宽度优先搜索 7.4.1 宽度优先搜索算法 7.4.2 BFS算法分析 7.4.3 BFS算法应用举例 7.5 深度优先搜索 7.5.1 深度优先搜索算法 7.5.2 DFS算法分析 7.5.3 DFS应用举例 7.6 小结 课后习题 第8章 贪心算法 8.1 引言 8.2 硬币找零 8.2.1 问题描述 8.2.2 问题求解 8.2.3 最优解证明 8.3 间隔任务规划 8.3.1 问题描述 8.3.2 问题求解 8.3.3 最优解证明 8.4 单源最矩路径问题 8.4.1 Dijkstra问题 8.4.2 算法的正确性 8.4.3 算法的性能优化 8.5 最小生成树 8.5.1 Prim算法 8.5.2 算法实现 8.6 小结 课后习题 第9章 动态规划算法 9.1 引言 9.2 再遇斐波那契数 9.3 一维动态规划 9.3.1 拾捡硬币 9.3.2 连续子序列和的最大值 9.3.3 疯狂的8 9.3.4 文本排版 9.3.5 完全信息的21点 9.4 二维动态规划 9.4.1 矩阵的括号 9.4.2 字符串编辑距离 9.4.3 0-1背包问题 9.5 小结 课后习题 第10章 最大流算法应用 10.1 引言 10.2 最大流算法 10.2.1 Ford-Fulkerson算法 10.2.2 Edmond-Karp算法 10.3 最大流算法的应用 10.3.1 二向图最大匹配问题 10.3.2 文件传输中的不重合边问题 10.4 小结 课后习题 第11章 随机算法 11.1 引言 11.2 矩阵乘积结果验证 11.3 快速排序 11.3.1 根据支点数划分输入序列 11.3.2 选择支点数 11.3.3 随机快速排序 11.4 选择第k小的数 11.5 寻找最小割边 11.6 小结 课后习题 第12章 算法复杂度 12.1 引言 12.2 问题的分类 12.2.1 易解与难解 12.2.2 无解的问题 12.2.3 难解问题的证明 12.3 NPC问题应用 12.3.1 决策问题 12.3.2 问题的化约 12.3.3 NP问题 12.3.4 NPC问题 12.4 P等于NP吗 12.5 小结 课后习题 索引 代码列表 参考文献 |