书籍详情
算法设计与分析(基于C++编程语言的描述)
作者:王秋芬 赵刚彬
出版社:清华大学出版社
出版时间:2023-01-01
ISBN:9787302610687
定价:¥89.00
购买这本书可以去
内容简介
本书注重理论与实践紧密结合,系统介绍算法设计方法、分析技巧和 C 编程实战。作者本着“易理 解,重实用”的指导思想,结合多年的教学经验,以算法设计策略为主线,沿着“算法思想—算法设计—构造 实例—算法描述—算法分析—C 实战”的思路组织学习内容,共包括算法及基础知识、贪心法、分治法、动 态规划、搜索法、随机化算法、线性规划问题与网络流、数论算法及计算几何算法和 NP完全理论等9章内 容。为突出教材的可读性、可用性及前沿性,每章增设了学习目标、阅读材料及习题解析,配套资源包括实 验指导书、教学大纲、教学课件、经典案例源代码、微课视频、课程网站等内容。 本书内容丰富、思路清晰、实例讲解详细、图例直观形象,适合作为计算机及其相关专业的本科生和研 究生教材,也可供工程技术人员和自学读者学习参考,还适合作为参加 ACM 程序设计大赛的爱好者的参 考书或培训教材。
作者简介
王秋芬 副教授,长期讲授“算法设计与分析”“操作系统原理”“数据结构”“Linux操作系统”等课程,长期从事算法设计、智能计算等领域的科研工作。主持或参与省部级以上教研与科研课题10余项,先后发表学术论文20余篇,出版图书4部,申请专利4项。
目录
第1章算法基础
1.1算法的基本概念
1.1.1学习算法的重要性
1.1.2算法的定义及特性
1.1.3算法的描述方式
1.1.4算法与程序的区别
1.2算法设计的一般过程
1.3算法分析
1.3.1算法分析的概念
1.3.2时间复杂性
1.3.3空间复杂性
1.3.4算法渐进复杂性
1.3.5算法复杂性的权衡考虑
1.4递归
1.4.1认知递归
1.4.2n的阶乘
1.4.3排列问题
1.4.4递归算法的复杂性分析
1.5基本数据结构
1.5.1顺序表与链表
1.5.2栈与队列
1.5.3树与图
1.5.4集合
1.6常用数学公式
1.6.1对数公式
1.6.2组合公式
1.6.3求和公式
1.6.4向下取整和向上取整公式
拓展知识: 算法界十大名师简介
本章习题
第2章贪心算法
2.1概述
2.1.1贪心算法的基本思想
2.1.2贪心算法的基本要素
2.1.3贪心算法的解题步骤及算法设计模式
2.2会场安排问题
2.3单源最短路径问题
2.4哈夫曼编码
2.5最小生成树
2.5.1Prim算法
2.5.2Kruskal算法
2.5.3两种算法的比较
拓展知识: 遗传算法
本章习题
第3章分治算法
3.1概述
3.1.1分治算法的基本思想
3.1.2分治算法的解题步骤
3.2二分查找
3.3循环赛日程表
3.4合并排序
3.5快速排序
拓展知识: 禁忌搜索算法
本章习题
第4章动态规划
4.1概述
4.1.1动态规划的基本思想
4.1.2动态规划的解题步骤
4.1.3动态规划的基本要素
4.2矩阵连乘问题
4.3凸多边形最优三角剖分问题
4.4最长公共子序列问题
4.5加工顺序问题
4.601背包问题
4.7最优二叉查找树
拓展知识: 模拟退火算法
本章习题
第5章搜索算法
5.1穷举搜索
5.2深度优先搜索
5.3回溯算法
5.3.1回溯算法的算法框架及思想
5.3.2子集树
5.3.3排列树
5.3.4满m叉树
5.4宽度优先搜索
5.5分支限界算法
5.5.1分支限界算法的基本思想
5.5.201背包问题
5.5.3旅行商问题
5.5.4布线问题
5.5.5分支限界算法与回溯算法的比较
拓展知识: 蚁群算法
本章习题
第6章随机化算法
6.1概述
6.1.1随机化算法的类型及特点
6.1.2随机数发生器
6.2数值随机化算法
6.2.1计算π值的问题及分析
6.2.2计算定积分
6.3蒙特卡罗算法
6.3.1主元素问题
6.3.2素数测试
6.4拉斯维加斯算法
6.4.1整数因子分解问题
6.4.2n皇后问题
6.5舍伍德算法
6.5.1随机快速排序
6.5.2线性时间选择问题
拓展知识: 粒子群优化算法
本章习题
第7章线性规划问题与网络流
7.1概述
7.1.1一般线性规划问题的描述
7.1.2标准型线性规划问题的描述
7.1.3标准型线性规划问题的单纯形算法
7.2最大网络流
7.2.1基本概念
7.2.2增广路算法
7.2.3最大网络流的变换与应用
7.3最小费用最大流
7.3.1基本概念
7.3.2消圈算法
7.3.3最小费用最大流的变换与应用
拓展知识: 捕食搜索算法
本章习题
第8章数论算法及计算几何算法
8.1最大公约数
8.1.1欧几里得算法
8.1.2Stein算法
8.2同余方程
8.3同余方程组
8.4线段相交
8.5凸包问题
8.5.1凸包问题的穷举搜索法
8.5.2凸包问题的分治法
8.6最接近点对问题
8.6.1最接近点对问题的穷举搜索法
8.6.2最接近点对问题的分治法
拓展知识: 动态进化算法
本章习题
第9章NP完全理论
9.1易解问题和难解问题
9.2P类问题和NP类问题
9.2.1P类问题
9.2.2NP类问题
9.2.3P类问题和NP类问题的关系
9.3NP完全问题
9.3.1多项式变换技术
9.3.2典型的NP完全问题
9.4NP完全问题的近似算法
9.4.1顶点覆盖问题
9.4.2装箱问题
9.4.3旅行商问题
9.4.4集合覆盖问题
拓展知识: DNA计算
本章习题
附录A习题解析
视频目录
算法的基本概念1.1节
算法设计的一般过程1.2节
算法分析概念及时间、空间复杂性1.3.1节
算法渐进复杂性1.3.4节
多项式时间定理证明及O的运算性质1.3.4节
算法的运行时间T(n)建立的依据1.3.4节
算法所占用的空间S(n)建立的依据1.3.4节
贪心算法的基本思想、基本要素2.1节
会场安排问题2.2节
会场安排问题算法的正确性证明2.2节
最优装载问题算法正确性证明2.2节
单源最短路径问题算法2.3节
哈夫曼编码算法2.4节
哈夫曼编码贪心算法正确性证明2.4节
哈夫曼编码C 实战2.4节
最小生成树Prim算法2.5.1节
最小生成树Kruskal算法2.5.2节
分治算法的基本思想及二分查找3.1节
循环赛日程表问题3.3节
合并排序3.4节
快速排序3.5节
动态规划的基本思想、解题步骤、基本要素4.1.1节
矩阵连乘问题4.2节
凸多边形最优三角剖分4.3节
最长公共子序列问题4.4节
加工顺序问题4.5节
加工顺序问题4.5节
背包问题4.6节
背包问题的跳跃点算法4.6节
最优二叉查找树的概念4.7节
最优二叉查找树4.7节
穷举搜索与深度优先搜索5.1节
回溯算法的算法框架及思想5.3.1节
子集树的概念及算法设计模式5.3.2节
背包问题5.3.2节
背包问题改进回溯法5.3.2节
最大团问题5.3.2节
排列树模型及算法设计模式5.3.3节
批处理作业调度问题5.3.3节
旅行商问题5.3.3节
满m叉树模型及图的m着色问题5.3.4节
最小机器重量设计问题5.3.4节
宽度优先搜索5.4节
分支限界算法及01背包问题5.5.1节
旅行商问题分支限界算法5.5.3节
布线问题分支限界算法5.5.4节
随机化算法概述及随机数发生器6.1节
数值随机化算法6.2节
蒙特卡罗算法6.3节
拉斯维加斯算法6.4节
舍伍德算法6.5节
线性规划问题7.1.1节
约束标准型线性规划问题的单纯性算法7.1.3节
两阶段单纯形算法7.1.3节
最大网络流的基本概念7.2.1节
增广路算法7.2.2节
最大网络流的变换与应用7.2.3节
最小费用最大流消圈算法7.3.2节
最大公约数8.1节
同余方程8.2节
同余方程应用——量水问题8.2节
同余方程组8.3节
线段相交8.4节
凸包问题8.5节
最接近点对问题8.6节
P类问题和NP类问题9.2节
NP完全问题9.3节
NP完全问题的近似算法9.4节
1.1算法的基本概念
1.1.1学习算法的重要性
1.1.2算法的定义及特性
1.1.3算法的描述方式
1.1.4算法与程序的区别
1.2算法设计的一般过程
1.3算法分析
1.3.1算法分析的概念
1.3.2时间复杂性
1.3.3空间复杂性
1.3.4算法渐进复杂性
1.3.5算法复杂性的权衡考虑
1.4递归
1.4.1认知递归
1.4.2n的阶乘
1.4.3排列问题
1.4.4递归算法的复杂性分析
1.5基本数据结构
1.5.1顺序表与链表
1.5.2栈与队列
1.5.3树与图
1.5.4集合
1.6常用数学公式
1.6.1对数公式
1.6.2组合公式
1.6.3求和公式
1.6.4向下取整和向上取整公式
拓展知识: 算法界十大名师简介
本章习题
第2章贪心算法
2.1概述
2.1.1贪心算法的基本思想
2.1.2贪心算法的基本要素
2.1.3贪心算法的解题步骤及算法设计模式
2.2会场安排问题
2.3单源最短路径问题
2.4哈夫曼编码
2.5最小生成树
2.5.1Prim算法
2.5.2Kruskal算法
2.5.3两种算法的比较
拓展知识: 遗传算法
本章习题
第3章分治算法
3.1概述
3.1.1分治算法的基本思想
3.1.2分治算法的解题步骤
3.2二分查找
3.3循环赛日程表
3.4合并排序
3.5快速排序
拓展知识: 禁忌搜索算法
本章习题
第4章动态规划
4.1概述
4.1.1动态规划的基本思想
4.1.2动态规划的解题步骤
4.1.3动态规划的基本要素
4.2矩阵连乘问题
4.3凸多边形最优三角剖分问题
4.4最长公共子序列问题
4.5加工顺序问题
4.601背包问题
4.7最优二叉查找树
拓展知识: 模拟退火算法
本章习题
第5章搜索算法
5.1穷举搜索
5.2深度优先搜索
5.3回溯算法
5.3.1回溯算法的算法框架及思想
5.3.2子集树
5.3.3排列树
5.3.4满m叉树
5.4宽度优先搜索
5.5分支限界算法
5.5.1分支限界算法的基本思想
5.5.201背包问题
5.5.3旅行商问题
5.5.4布线问题
5.5.5分支限界算法与回溯算法的比较
拓展知识: 蚁群算法
本章习题
第6章随机化算法
6.1概述
6.1.1随机化算法的类型及特点
6.1.2随机数发生器
6.2数值随机化算法
6.2.1计算π值的问题及分析
6.2.2计算定积分
6.3蒙特卡罗算法
6.3.1主元素问题
6.3.2素数测试
6.4拉斯维加斯算法
6.4.1整数因子分解问题
6.4.2n皇后问题
6.5舍伍德算法
6.5.1随机快速排序
6.5.2线性时间选择问题
拓展知识: 粒子群优化算法
本章习题
第7章线性规划问题与网络流
7.1概述
7.1.1一般线性规划问题的描述
7.1.2标准型线性规划问题的描述
7.1.3标准型线性规划问题的单纯形算法
7.2最大网络流
7.2.1基本概念
7.2.2增广路算法
7.2.3最大网络流的变换与应用
7.3最小费用最大流
7.3.1基本概念
7.3.2消圈算法
7.3.3最小费用最大流的变换与应用
拓展知识: 捕食搜索算法
本章习题
第8章数论算法及计算几何算法
8.1最大公约数
8.1.1欧几里得算法
8.1.2Stein算法
8.2同余方程
8.3同余方程组
8.4线段相交
8.5凸包问题
8.5.1凸包问题的穷举搜索法
8.5.2凸包问题的分治法
8.6最接近点对问题
8.6.1最接近点对问题的穷举搜索法
8.6.2最接近点对问题的分治法
拓展知识: 动态进化算法
本章习题
第9章NP完全理论
9.1易解问题和难解问题
9.2P类问题和NP类问题
9.2.1P类问题
9.2.2NP类问题
9.2.3P类问题和NP类问题的关系
9.3NP完全问题
9.3.1多项式变换技术
9.3.2典型的NP完全问题
9.4NP完全问题的近似算法
9.4.1顶点覆盖问题
9.4.2装箱问题
9.4.3旅行商问题
9.4.4集合覆盖问题
拓展知识: DNA计算
本章习题
附录A习题解析
视频目录
算法的基本概念1.1节
算法设计的一般过程1.2节
算法分析概念及时间、空间复杂性1.3.1节
算法渐进复杂性1.3.4节
多项式时间定理证明及O的运算性质1.3.4节
算法的运行时间T(n)建立的依据1.3.4节
算法所占用的空间S(n)建立的依据1.3.4节
贪心算法的基本思想、基本要素2.1节
会场安排问题2.2节
会场安排问题算法的正确性证明2.2节
最优装载问题算法正确性证明2.2节
单源最短路径问题算法2.3节
哈夫曼编码算法2.4节
哈夫曼编码贪心算法正确性证明2.4节
哈夫曼编码C 实战2.4节
最小生成树Prim算法2.5.1节
最小生成树Kruskal算法2.5.2节
分治算法的基本思想及二分查找3.1节
循环赛日程表问题3.3节
合并排序3.4节
快速排序3.5节
动态规划的基本思想、解题步骤、基本要素4.1.1节
矩阵连乘问题4.2节
凸多边形最优三角剖分4.3节
最长公共子序列问题4.4节
加工顺序问题4.5节
加工顺序问题4.5节
背包问题4.6节
背包问题的跳跃点算法4.6节
最优二叉查找树的概念4.7节
最优二叉查找树4.7节
穷举搜索与深度优先搜索5.1节
回溯算法的算法框架及思想5.3.1节
子集树的概念及算法设计模式5.3.2节
背包问题5.3.2节
背包问题改进回溯法5.3.2节
最大团问题5.3.2节
排列树模型及算法设计模式5.3.3节
批处理作业调度问题5.3.3节
旅行商问题5.3.3节
满m叉树模型及图的m着色问题5.3.4节
最小机器重量设计问题5.3.4节
宽度优先搜索5.4节
分支限界算法及01背包问题5.5.1节
旅行商问题分支限界算法5.5.3节
布线问题分支限界算法5.5.4节
随机化算法概述及随机数发生器6.1节
数值随机化算法6.2节
蒙特卡罗算法6.3节
拉斯维加斯算法6.4节
舍伍德算法6.5节
线性规划问题7.1.1节
约束标准型线性规划问题的单纯性算法7.1.3节
两阶段单纯形算法7.1.3节
最大网络流的基本概念7.2.1节
增广路算法7.2.2节
最大网络流的变换与应用7.2.3节
最小费用最大流消圈算法7.3.2节
最大公约数8.1节
同余方程8.2节
同余方程应用——量水问题8.2节
同余方程组8.3节
线段相交8.4节
凸包问题8.5节
最接近点对问题8.6节
P类问题和NP类问题9.2节
NP完全问题9.3节
NP完全问题的近似算法9.4节
猜您喜欢