![]()
内容推荐 本书依据“易理解,重实用”的指导思想,以算法设计策略为主线,沿着“问题分析-算法设计-算法描述-算法实例-算法分析-Python实战”的路线,系统地介绍了算法的设计思路、分析方法及Python语言实现。本书共有9章,分别为算法概述、贪心算法、分治算法、动态规划、回溯法、分支限界法、线性规划问题与网络流、随机化算法、NP完全理论。 本书内容丰富、思路清晰、实例讲解详细、完美Python实战,适合作为计算机类专业及其相关专业的本科生教材,也可供工程技术人员和自学读者学习参考。此外,本书也适合作为参加ACM程序设计大赛的爱好者的参考书或培训教材。 目录 第1章 算法概述 1.1 什么是算法 1.2 为什么学习算法 1.3 算法的描述方式 1.4 算法设计的一般过程 1.5 算法分析 1.5.1 算法分析的概念 1.5.2 时间复杂度和空间复杂度 1.5.3 渐近复杂性态 1.5.4 渐近意义下的记号 1.5.5 算法的运行时间T(n)建立的依据 1.5.6 算法所占用的空间S(n)建立的依据 1.6 递推方程求解方法 1.6.1 迭代法 1.6.2 递归树 1.6.3 差消法 1.6.4 主方法 第2章 贪心算法——贪心不足 2.1 概述 2.1.1 贪心算法的本质 2.1.2 贪心算法的基本要素 2.2 活动安排问题 2.2.1 问题分析——贪心策略 2.2.2 算法设计 2.2.3 实例构造 2.2.4 算法分析 2.2.5 Python实战 2.3 单源最短路径问题 2.3.1 问题分析——贪心策略 2.3.2 算法设计 2.3.3 实例构造 2.3.4 算法分析 2.3.5 Python实战 2.4 哈夫曼编码 2.4.1 问题分析——贪心策略 2.4.2 算法设计 2.4.3 实例构造 2.4.4 算法分析 2.4.5 Python实战 2.5 最小生成树——Prim算法 2.5.1 问题分析——贪心策略 2.5.2 算法设计 2.5.3 实例构造 2.5.4 算法分析 2.5.5 Python实战 2.6 最小生成树——Kruskal算法 2.6.1 问题分析——贪心策略 2.6.2 算法设计 2.6.3 实例构造 2.6.4 算法分析 2.6.5 Python实战 2.7 背包问题 2.7.1 问题分析——贪心策略 2.7.2 算法设计 2.7.3 实例构造 2.7.4 算法分析 2.7.5 Python实战 第3章 分治算法——分而治之 3.1 概述 3.1.1 分治算法的本质 3.1.2 分治算法的求解步骤 3.2 二分查找 3.2.1 问题分析——分与治的方法 3.2.2 算法设计 3.2.3 实例构造 3.2.4 算法分析 3.2.5 Python实战 3.3 选第二大元素 3.3.1 问题分析——分与治的方法 3.3.2 算法设计 3.3.3 实例构造 3.3.4 算法分析 3.3.5 Python实战 3.4 循环赛日程表 3.4.1 问题分析——分与治的方法 3.4.2 算法设计 3.4.3 实例构造 3.4.4 算法分析 3.4.5 Python实战 3.5 合并排序 3.5.1 问题分析——分与治的方法 3.5.2 算法设计 3.5.3 实例构造 3.5.4 算法分析 3.5.5 Python实战 3.6 快速排序 3.6.1 问题分析——分与治的方法 3.6.2 算法设计 3.6.3 实例构造 3.6.4 算法分析 3.6.5 Python实战 3.7 线性时间选择——找第k小问题 3.7.1 问题分析——分与治的方法 3.7.2 算法设计 3.7.3 实例构造 3.7.4 算法分析 3.7.5 Python实战 第4章 动态规划 4.1 概述 4.1.1 动态规划的基本思想 4.1.2 动态规划的求解步骤 4.1.3 动态规划的基本要素 4.2 矩阵连乘问题 4.2.1 问题分析——递归关系 4.2.2 算法设计 4.2.3 实例构造 4.2.4 算法分析 4.2.5 Python实战 4.3 凸多边形最优三角剖分 4.3.1 问题分析——递归关系 4.3.2 算法设计 4.3.3 实例构造 4.3.4 算法分析 4.3.5 Python实战 4.4 最长公共子序列问题 4.4.1 问题分析——递归关系 4.4.2 算法设计 4.4.3 实例构造 4.4.4 算法分析 4.4.5 Python实战 4.5 加工顺序问题 4.5.1 问题分析——递归关系 4.5.2 算法设计 4.5.3 实例构造 4.5.4 算法分析 4.5.5 Python实战 4.6 0-1背包问题 4.6.1 问题分析——递归关系 4.6.2 算法设计 4.6.3 实例构造 4.6.4 算法分析 4.6.5 算法的改进 4.6.6 Python实战 4.7 最优二叉查找树 4.7.1 问题分析——递归关系 4.7.2 算法设计 4.7.3 实例构造 4.7.4 算法分析 4.7.5 Python实战 第5章 回溯法——深度优先搜索 5.1 概述 5.2 典型的解空间结构 5.2.1 子集树 5.2.2 排列树 5.2.3 满m叉树 5.3 0-1背包问题——子集树 5.3.1 问题分析——解空间及搜索条件 5.3.2 算法设计 5.3.3 实例构造 5.3.4 算法的改进 5.3.5 算法分析 5.3.6 Python实战 5.4 最大团问题——子集树 5.4.1 问题分析——解空间及搜索条件 5.4.2 算法设计 5.4.3 实例构造 5.4.4 算法分析 5.4.5 Python实战 5.5 批处理作业调度问题——排列树 5.5.1 问题分析——解空间及搜索条件 5.5.2 算法设计 5.5.3 实例构造 5.5.4 算法分析 5.5.5 Python实战 5.6 旅行商问 |