![]()
内容推荐 本书内容遵循《高等学校计算机科学与技术专业公共核心知识体系与课程》(教育部高等学校计算机科学与技术教学指导委员会,2008)的知识体系,介绍算法及其设计、分析的基础知识,并通过大量例题,讲解枚举法、递推法、分治法、贪婪算法、动态规划及与图搜索有关的算法策略。除此之外,还讲解了算法设计基本工具的使用和算法设计中的技巧。最后通过案例的一题多解进行算法设计的实践。算法采用了接近自然语言(英语)的符号,可读性强,适合不同程序设计语言背景的读者学习。 本书可作为高等院校计算机及其相关专业高年级本科生和研究生“算法设计”课程的教材,也可作为计算机工作者、广大程序设计爱好者和信息学爱好者的参考书。 作者简介 吕国英,山西大学教授,全国优秀教师,民进会员,毕业于山东大学。长期从事算法设计与分析、程序设计语言和数据结构等方面的研究和教学工作。主持的“算法设计课程群教学研究与改革实践”荣获山西省政府教学成果一等奖。2010-2020年指导学生获“全国软件专业人才设计与开发大赛”一等奖5项,2015年指导学生获“华北五省(市、自治区)及港澳台大学生计算机应用大赛”一等奖。曾主持山西省研究生教育改革研究课题“算法设计与分析课程硕本衔接教学研究”。 目录 第1篇 引入篇 第1章 算法概述 1.1 用计算机求解问题与算法 1.1.1 用计算机求解问题的步骤 1.1.2 算法及其要素和特性 1.1.3 算法设计及基本方法 1.1.4 从算法到实现 1.2 算法设计步骤及描述 1.2.1 算法描述简介 1.2.2 本书算法描述约定 1.2.3 一个简单问题的求解过程 1.3 现代常用算法概览 1.3.1 数据压缩及算法 1.3.2 数据加密及算法 1.3.3 人工智能及算法 1.3.4 并行计算及算法 1.3.5 搜索引擎及算法 第2章 算法分析基础 2.1 算法分析体系及计量 2.1.1 算法分析的评价体系 2.1.2 算法的时间复杂性 2.1.3 算法的空间复杂性 2.2 算法分析实例 2.2.1 非递归算法分析 2.2.2 递归算法分析 2.3 提高算法质量 2.4 问题复杂度及分类 2.4.1 问题时间复杂度的上界和下界 2.4.2 NP完全问题 第2篇 基础篇 第3章 算法基本工具和优化技巧 3.1 循环与递归 3.1.1 循环设计要点 3.1.2 递归设计要点 3.1.3 递归与循环的比较 3.2 算法与数据结构 3.2.1 原始信息与处理结果的对应存储 3.2.2 数组使信息有序化 3.2.3 数组记录状态信息 3.2.4 高精度数据存储及运算 3.2.5 构造趣味矩阵 3.2.6 一维与二维的选择 3.3 优化算法的基本技巧 3.3.1 算术运算的妙用 3.3.2 标志量的妙用 3.3.3 信息数字化 3.4 优化算法的数学模型 3.4.1 杨辉三角形的应用 3.4.2 最大公约数的应用 3.4.3 公倍数的应用 3.4.4 斐波那契数列的应用 3.4.5 特征根求解递推方程 习题 第3篇 核心篇 第4章 基本的算法策略 4.1 迭代算法 4.1.1 递推算法 4.1.2 倒推算法 4.1.3 用迭代算法解方程 4.2 蛮力法 4.2.1 枚举法 4.2.2 其他范例 4.3 分而治之算法 4.3.1 分而治之算法框架 4.3.2 典型二分法 4.3.3 二分法的相似问题 4.3.4 二分法的独立问题 4.3.5 二分法的归并问题 4.3.6 非等分分治 4.4 贪婪算法 4.4.1 可绝对贪婪问题 4.4.2 相对或近似贪婪问题 4.4.3 贪婪算法设计框架 4.5 动态规划 4.5.1 认识动态规划 4.5.2 动态规划算法设计框架 4.5.3 突出阶段性的动态规划应用 4.5.4 突出递推的动态规划应用 4.6 算法策略间的比较 4.6.1 不同算法策略特点小结 4.6.2 算法策略间的关联 4.6.3 算法策略侧重的问题类型 习题 第5章 图的搜索算法 5.1 图搜索概述 5.1.1 图及其术语 5.1.2 图搜索及其术语 5.2 广度优先搜索 5.2.1 广度优先算法框架 5.2.2 广度优先搜索的应用 5.3 深度优先搜索 5.3.1 深度优先算法框架 5.3.2 深度优先搜索的应用 5.4 回溯法 5.4.1 认识回溯法 5.4.2 回溯算法框架 5.4.3 应用1——基本的回溯搜索 5.4.4 应用2——排列及排列树的回溯搜索 5.4.5 应用3——最优化问题的回溯搜索 5.5 分支限界法 5.5.1 分支搜索算法 5.5.2 分支限界搜索算法 5.5.3 算法框架 5.6 图的搜索算法小结 习题 第4篇 应用篇 第6章 概率算法 6.1 概述 6.2 统计模拟——蒙特卡罗算法 6.2.1 数值计算方法——蒙特卡罗算法 6.2.2 考虑正确概率的算法——蒙特卡罗算法 6.3 随机序列提高算法的平均复杂度——舍伍德算法 6.4 随机生成答案并检测答案正确性——拉斯维加斯算法 第7章 算法设计实践 7.1 循环赛日程表(4种) 7.2 求3个数的最小公倍数(4种) 7.3 猴子选大王(4种) 7.4 最大子段和问题(5种) 7.5 背包问题(11种) 7.5.1 与利润无关的背包问题 7.5.2 与利润有关的背包问题 7.6 主元素问题(6种) 附录 “算法设计与分析”课程设计大纲 参考文献 |