![]()
编辑推荐 对算法的解读通常通过作者称为“思路”的方式展开,并通过设置问题和解答问题的方式,让读者不仅对算法知其然,也知其所以然。 在每章的最后一节都会讨论该算法的一个重要应用,一方面体现算法的应用价值,另一方面激发读者对算法进一步学习的兴趣。 配套提供电子课件、教学大纲、微课视频、MOOC(B站)、试卷及答案。 内容推荐 本书主要讨论和分析基础算法,包括排序、递归、分治、动态规划、贪心、图算法、回溯和分支限界,以及匹配与指派。为了让读者不仅掌握算法,也能够理解算法的设计思想,本书对算法的解读通常通过作者称为“思路”的方式展开,并通过设置问题和解答问题的方式,让读者不仅对算法知其然,也知其所以然。尽管这些算法是基础算法,但它们在实际中有着广泛的应用。本书的另一大特点是对算法应用的讨论,这些讨论一方面体现算法的应用价值,另一方面激发读者对算法进一步学习的兴趣。 本书可作为高等院校计算机类专业本科生的算法课程的教材,也可作为各行业从事算法设计和开发的人员的技术参考书。 目录 前言 第1章算法概念和基础 11基本概念 111搜索 112排序 12算法复杂度 121时间复杂度 122算法的时间复杂度 123空间复杂度 13数据结构 131堆 132不相交集 14本章小结 15习题 第2章排序 21比较排序 211冒泡排序 212堆排序 213插入排序 214归并排序 22线性排序 221桶排序 222计数排序 223基数排序 23本章小结 24习题 第3章递归 31基本概念 32递归例子 321生成排列 322整数划分 33复杂度的递归方法求解 331展开法 332代入法 333递归树方法 334主方法 335几种递归形式的复杂度分析 34本章小结 35习题 第4章分治 41基本概念 42快速排序 43优选子数组问题 44最近点对问题 45棋盘覆盖问题 46寻找第k小元素 47分治在傅里叶变换中的应用* 48本章小结 49习题 第5章动态规划 51基本概念和步骤 52优选子数组问题 530-1背包问题 54旅行商问题 55最长公共子序列 56斯坦纳最小树* 57状态压缩动态规划 571集合状态压缩 572空间状态压缩 58动态规划和贝尔曼方程* 59本章小结 510习题 第6章贪心 61基本概念 62小数背包和0-1背包 621小数背包贪心算法的正确性证明 6220-1背包贪心算法 63最小生成树 631Kruskal算法 632Prim算法 64霍夫曼编码 65贪心算法在稳定匹配中的应用* 66本章小结 67习题 第7章图算法 71深度优先搜索 711无向图的深度优先搜索 712有向图的深度优先搜索 713应用:寻找图的关节点 72广度优先搜索 721无向图的广度优先搜索 722有向图的广度优先搜索 723应用:最短路径(跳数) 73单源最短路径 731Dijkstra算法 732Bellman-Ford算法 733SPFA算法 734差分约束系统 74多源最短路径 741Floyd算法(弗洛伊德算法) 742Johnson算法 75最短路径在网络路由中的应用* 76本章小结 77习题 第8章回溯和分支限界 81回溯的基本方法 811回溯法的基本步骤 812回溯法的通用框架 82骑士巡游问题 830-1背包问题 84优选团问题 841优选团的回溯算法 842Bron-Kerbosch算法 85分支限界法 851基本方法 852旅行商问题 853任务指派问题 86分支限界在流水线作业调度中的应用* 87本章小结 88习题 第9章匹配与指派 91基本概念 92基于图的匈牙利算法 921匹配问题 922指派问题 93基于矩阵的匈牙利算法 931算法流程 932优选化指派 94匹配算法在多目标跟踪中的应用* 95本章小结 96习题 参考文献 |