关于本书的内容有任何问题,请联系 人邮社 王宣
第 1章 算法设计与分析基础 1 1.1 算法概述 2 1.1.1 什么是算法 2 1.1.2 学习算法的重要性 6 1.2 问题的求解过程 6 1.2.1 问题及问题的求解过程 6 1.2.2 算法设计与算法表示 7 1.2.3 算法确认和算法分析 8 1.3 算法的复杂性分析 8 1.3.1 算法评价的基本原则 9 1.3.2 影响程序运行时间的因素 10 1.3.3 算法复杂度 11 1.3.4 使用程序步分析算法 14 1.3.5 渐近表示法 15 1.4 算法设计中常见的重要问题类型 18 1.4.1 排序问题 18 1.4.2 查找问题 19 1.4.3 图问题 19 1.4.4 组合问题 20 1.4.5 几何问题 20 1.4.6 数值问题 21 1.4.7 其他常见问题 21 1.5 常用的算法设计方法 22 1.5.1 数值计算算法 23 1.5.2 非数值计算算法 24 1.6 小结 28 练习题 29 第 2章 递归算法 31 2.1 递归算法的思想 32 2.1.1 递归算法的特性 32 2.1.2 递归算法的执行过程 32 2.1.3 递推关系 33 2.2 递归法应用举例 37 2.2.1 汉诺塔问题 37 2.2.2 斐波那契数列问题 39 2.2.3 八皇后问题 40 2.3 典型问题的C++程序 43 2.4 小结 48 练习题 48 第3章 分治算法 50 3.1 分治算法的思想 51 3.2 排序问题中的分治算法 52 3.2.1 归并排序 53 3.2.2 快速排序 55 3.3 查找问题中的分治算法 57 3.3.1 折半查找 57 3.3.2 选择问题 59 3.4 组合问题中的分治算法 60 3.4.1 最大子段和问题 60 3.4.2 棋盘覆盖问题 62 3.5 典型问题的C++程序 64 3.6 小结 70 练习题 71 第4章 贪心算法 72 4.1 贪心算法的思想 73 4.1.1 问题的提出 73 4.1.2 贪心算法设计思想 73 4.1.3 贪心算法的基本要素 74 4.1.4 贪心算法的求解过程 74 4.2 组合问题中的贪心算法 75 4.2.1 背包问题 75 4.2.2 多机调度问题 77 4.3 图问题中的贪心算法 78 4.3.1 单源最短路径问题 78 4.3.2 最小代价生成树 80 4.4 典型问题的C++程序 84 4.5 小结 92 练习题 92 第5章 动态规划算法 94 5.1 动态规划算法的思想 95 5.2 查找问题中的动态规划算法 97 5.2.1 最优二叉搜索树 97 5.2.2 近似串匹配问题 100 5.3 图问题中的动态规划算法 102 5.3.1 多段图问题 102 5.3.2 每对结点间的最短距离 105 5.4 组合问题中的动态规划算法 108 5.4.1 0/1背包问题 108 5.4.2 最长公共子序列 112 5.4.3 流水作业调度 115 5.5 典型问题的C++程序 120 5.6 小结 125 练习题 126 第6章 回溯算法 128 6.1 回溯算法的思想 129 6.1.1 基本概念 129 6.1.2 基本思路 130 6.1.3 回溯算法的适用条件 132 6.1.4 回溯算法的效率估计 132 6.2 组合问题中的回溯算法 133 6.2.1 装载问题 133 6.2.2 0/1背包问题 134 6.2.3 n皇后问题 136 6.2.4 图的m着色问题 139 6.2.5 子集和数问题 141 6.3 图问题中的回溯算法 143 6.3.1 深度优先搜索 143 6.3.2 货郎(TSP)问题 143 6.3.3 最大团(MCP)问题 145 6.3.4 哈密顿环问题 146 6.4 算法效率的影响因素及改进途径 148 6.4.1 影响算法效率的因素 148 6.4.2 回溯算法的改进途径 148 6.5 典型问题的C++程序 148 6.6 小结 165 练习题 165 第7章 分支限界算法 167 7.1 分支限界算法的思想 168 7.2 求最优解的分支限界算法 170 7.2.1 FIFO分支限界算法 171 7.2.2 LC分支限界算法 172 7.3 组合问题中的分支限界算法 173 7.3.1 0/1背包问题 173 7.3.2 带限期的作业排序 175 7.4 图问题中的分支限界算法 179 7.4.1 旅行商问题 179 7.4.2 单源点最短路径问题 182 7.5 典型问题的C++程序 184 7.6 小结 188 练习题 188 附录 实验指导 190 实验一 递归与分治算法 191 1.1 实验目的与要求 191 1.2 实验课时 191 1.3 实验原理 191 1.4 实验题目 191 1.5 思考题 192 实验二 贪心算法 192 2.1 实验目的与要求 192 2.2 实验课时 192 2.3 实验原理 192 2.4 实验题目 193 2.5 思考题 194 实验三 动态规划算法 194 3.1 实验目的与要求 194 3.2 实验课时 195 3.3 实验原理 195 3.4 实验题目 195 3.5 思考题 197 实验四 回溯算法 197 4.1 实验目的与要求 197 4.2 实验课时 197 4.3 实验原理 197 4.4 实验题目 198 4.5 思考题 199 实验五 分支限界算法 199 5.1 实验目的与要求 199 5.2 实验课时 200 5.3 实验原理 200 5.4 实验题目 200 5.5 思考题 203 参考文献 204
本书以程序设计作为基础,数据结构作为工具,六大核心算法作为目标,系统地介绍了算法设计中典型问题的求解过程。 ...
本书是一本采用任务驱动式体例编写的ECharts数据可视化技术教材,以通俗易懂的语言和丰富实用的任务,帮助读者...
本书是面向PHP语言和MySQL数据库初学者的一本入门教材,使用通俗易懂的语言、丰富的图解和实用的案例,详细讲...
本书为Java基础入门教材,适合初学者使用。全书共13章,第1~2章主要讲解Java技术的一些基础知识,内容包...
本书全面、系统地介绍银河麒麟桌面操作系统的基础知识、WPS Office的基本操作,以及其他信息技术的相关内容...
本书基于openEuler(22.03 LTS SP3版)国产操作系统和OpenStack(Train版)云计...
我要评论