书籍详情
妙趣横生的算法(C++语言实现)
作者:胡浩 等著
出版社:清华大学出版社
出版时间:2014-10-10
ISBN:9787302367604
定价:¥59.80
购买这本书可以去
内容简介
《妙趣横生的算法(C++语言实现)》内容丰富,生动有趣,寓教于乐,旨在帮助读者学习数据结构和算法的相关知识,从而开阔眼界,培养编程兴趣,提高编程能力,增强求职的竞争力。如果您想提高自己对算法和数据结构的理解能力,在程序设计之路上走得更远,那么请翻开本书,仔细研读吧,它将助您一臂之力。 本书以通俗易懂的语言深入浅出地介绍了常用的数据结构和算法知识。在讲解算法理论时,结合实际编程环境,配合精选的例题,利用C++语言将算法理论转换为代码,以加深读者对各种算法的特点和难点的理解,并能更好地掌握算法的应用。另外,作者为书中的重点内容录制了高清教学视频,便于读者高效、直观地学习。 本书共12章,分为4篇。第1篇是基础知识篇,主要介绍常用的数据结构。第2篇是基础算法篇,主要介绍算法的一些基础理论和常用的经典基础算法,包含算法的数学基础、排序算法、查找算法等。第3篇是高级算法篇,主要介绍难度较高的一些算法,包括高级图算法、动态规划、贪心算法等。其中,高级图算法是重点,用途很广,是在第3章图结构的基础上深入分析图结构在工程应用中的作用和常用算法思想,包括拓扑排序和最小生成树等。第4篇是算法实战篇,以实例分析为主,包含大量的数学应用方面的算法题和面试中常见的算法题。本篇是对本书算法理论知识的总结和实践,有较高的实用性。 本书特别适合算法入门人员和爱好者阅读,也适合有一定C++编程基础的人员作为进阶读物。另外,本书还适合相关院校作为教材使用。对于参加IT企业面试的程序员和各种程序设计选拔赛及信息学竞赛的参赛者,本书也是一本很好的参考读物。本书精华内容 基础数据结构(11个实例,26分钟视频) 树结构(8个实例,44分钟视频) 图结构(1个实例,34分钟视频) 算法入门(6个实例,30分钟视频) 排序算法(15个实例,49分钟视频) 查找算法(6个实例,22分钟视频) 高级图算法(4个实例,30分钟视频) 动态规划(11个实例,17分钟视频) 贪心算法(5个实例,21分钟视频) 综合趣味算法(34分钟视频) 数学趣题解决方法(29个实例,23分钟视频) 面试算法题精粹(37个实例,24分钟视频)
作者简介
胡浩,网络工程师。从事软件开发工作多年,在数据挖掘领域有较深的研究。精通算法设计,擅长数据挖掘算法。擅长C++和Java程序设计。曾经主持和参与了多个大型项目的开发,积累了丰富的开发经验。
目录
第1篇基础知识篇
第1章基础数据结构(教学视频:26分钟)
1.1顺序表
1.1.1顺序表的定义
1.1.2顺序表的基本操作
1.1.3实例应用与分析
1.2链表
1.2.1链表的定义
1.2.2链表基本操作
1.2.3双向链表
1.2.4循环链表
1.2.5实例应用与分析
1.3栈
1.3.1栈的定义
1.3.2栈的基本操作
1.3.3实例应用与分析
1.4队列
1.4.1队列的定义
1.4.2队列的基本操作
1.4.3实例应用与分析
1.5散列表
1.5.1散列表的定义
1.5.2散列函数
1.5.3基于散列的查找
1.5.4实例应用与分析
第2章树结构(教学视频:43分钟)
2.1树结构简介
2.1.1树的定义
2.1.2树的逻辑表示
2.1.3基本术语
2.1.4树的性质
2.1.5树的基本操作
2.1.6树与森林
2.1.7实例应用与分析
2.2二叉树
2.2.1二叉树的定义
2.2.2二叉树的性质
2.2.3二叉树的存储结构
2.2.4二叉树的基本操作
2.2.5实例应用与分析
2.3线索二叉树
2.3.1线索二叉树的定义
2.3.2线索二叉树的基本操作
2.4二叉查找树
2.4.1二叉查找树的定义
2.4.2二叉查找树的基本操作
2.4.3实例应用与分析
2.5红黑树
2.5.1红黑树的定义
2.5.2红黑树的基本操作
2.6B树
2.6.1B树的定义
2.6.2B树的基本操作
第3章图结构(教学视频:34分钟)
3.1图结构简介
3.2图的存储结构
3.2.1邻接矩阵存储
3.2.2邻接表存储
3.3图的基本操作和图的遍历
3.3.1图的基本操作
3.3.2深度优先遍历
3.3.3广度优先遍历
3.3.4实例应用与分析
第2篇基础算法篇
第4章算法入门(教学视频:30分钟)
4.1什么是算法
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.4基础算法应用实例
第5章排序算法(教学视频:49分钟)
5.1插入排序
5.1.1算法描述
5.1.2算法实现
5.1.3应用实例与分析
5.2冒泡排序
5.2.1算法描述
5.2.2算法实现
5.2.3应用实例与分析
5.3快速排序
5.3.1算法描述
5.3.2算法实现
5.3.3应用实例与分析
5.4归并排序
5.4.1算法描述
5.4.2算法实现
5.4.3应用实例与分析
5.5希尔排序
5.5.1算法描述
5.5.2算法实现
5.5.3应用实例与分析
5.6选择排序
5.6.1算法描述
5.6.2算法实现
5.6.3应用实例与分析
5.7堆排序
5.7.1堆
5.7.2堆排序算法描述
5.7.3算法实现
5.7.4应用实例与分析
5.8计数排序
5.8.1算法描述
5.8.2算法实现
5.8.3应用实例与分析
5.9基数排序
5.9.1算法描述
5.9.2算法实现
5.9.3应用实例与分析
5.10桶排序
5.10.1算法描述
5.10.2算法实现
5.10.3应用实例与分析
5.11排序算法的比较和选择
5.11.1排序算法的性能比较
5.11.2排序算法的选择标准
第6章查找算法(教学视频:22分钟)
6.1顺序查找
6.1.1算法描述
6.1.2算法实现
6.1.3应用实例与分析
6.2二分查找
6.2.1算法描述
6.2.2算法实现
6.2.3实例应用与分析
6.3二叉查找树
6.3.1二叉查找树的定义
6.3.2二叉查找树的基本操作回顾
6.3.3实例应用与分析
6.4分块查找
6.4.1算法描述
6.4.2算法实现
6.5B树查找算法
6.5.1算法描述
6.5.2算法实现
6.5.3扩展--B+树简介
6.6哈希查找
6.6.1算法描述
6.6.2算法实现
6.6.3实例应用及分析
第3篇高级算法篇
第7章高级图算法(教学视频:30分钟)
7.1拓扑排序
7.1.1算法描述
7.1.2算法实现
7.1.3实例分析与应用
7.2最小生成树
7.2.1算法描述
7.2.2算法实现
7.3单源最短路径
7.3.1算法描述
7.3.2算法实现
7.3.3应用实例与分析
7.4每对顶点间的最短路径
7.4.1算法描述
7.4.2算法实现
7.4.3应用实例与分析
7.5网络流
7.5.1流网络
7.5.2Ford-Fulkerson算法描述
7.5.3Ford-Fulkerson算法的实现
第8章动态规划(教学视频:17分钟)
8.1动态规划基础
8.1.1动态规划思想引例
8.1.2动态规划理论基础
8.2动态规划应用实例分析
8.2.1矩阵链乘法问题
8.2.2最长公共子序列问题
8.2.3背包问题
8.2.4求三角形最佳路径问题
8.2.5计算划分方案种类数问题
8.2.6设计竞赛题目问题
8.2.7双人游戏策略问题
8.2.8音乐CD最大曲目数问题
8.2.9求Jerry最快到达的时间问题
8.2.10陪审团人选问题
第9章贪心算法(教学视频:21分钟)
9.1贪心算法概述
9.1.1算法描述
9.1.2算法原理
9.2应用实例与分析
9.2.1活动选择问题
9.2.2任务调度问题
9.2.3闭区间不相交
9.2.4会场安排问题
9.2.5贪心算法在求最小生成树的应用
第10章综合趣味算法(教学视频:34分钟)
10.1矩阵运算
10.1.1矩阵的性质
10.1.2Strassen算法求矩阵乘积
10.2字符串算法
10.2.1朴素字符串匹配算法
10.2.2Rabin-Karp算法
10.3数论有关的基本算法
10.3.1基本数论概念
10.3.2求解最大公约数
10.3.3寻找素数
10.3.4整数的因子分解
第4篇算法实战篇
第11章数学趣题解决方法(教学视频:23分钟)
11.1求两个数的最大公约数和最小公倍数
11.2魔幻方阵的解法
11.3广场该建多大
11.4水仙花数
11.5通向女友之路
11.6八皇后问题
11.7洗扑克问题
11.8约瑟夫问题
11.9格雷码
11.10老鼠走迷宫
11.11骑士走棋盘
11.12三色球
11.13汉诺塔问题
11.14细胞的游戏
11.15超长整数加法
11.16阿姆斯壮数
11.17筛选求素数
11.18验证角谷猜想
11.19找出说谎人
11.20超级病毒
11.21数字的分解
11.22寻找完美数
11.23二维矩阵转一维矩阵
11.24求解低阶定积分
11.25迭代法开平方运算
11.26牛顿法解方程
11.27求解微分方程
11.28求解线性方程组
11.29梯形法求解定积分
第12章面试算法题精粹(教学视频:24分钟)
12.1常见基础题精粹
12.2常见算法编程题精粹
12.2.1遍历一次求取单链表的中间点
12.2.2实现单链表的排序
12.2.3判断两棵树是否相等
12.2.4寻找重复率最高的短信
12.2.5实现strcpy()函数
12.2.6字符串常见试题
12.2.7实现循环移动
12.3面试进阶问题
12.3.1寻找变位词集合
12.3.2咖啡罐问题
12.3.3判断两个链表是否相交
12.3.4寻找最大的"N"个数
12.3.5蜗牛爬杆问题
12.3.6判断单链表里是否有环
12.3.7代码括弧的校验
12.3.8查找数组中的最大值和最小值
第1章基础数据结构(教学视频:26分钟)
1.1顺序表
1.1.1顺序表的定义
1.1.2顺序表的基本操作
1.1.3实例应用与分析
1.2链表
1.2.1链表的定义
1.2.2链表基本操作
1.2.3双向链表
1.2.4循环链表
1.2.5实例应用与分析
1.3栈
1.3.1栈的定义
1.3.2栈的基本操作
1.3.3实例应用与分析
1.4队列
1.4.1队列的定义
1.4.2队列的基本操作
1.4.3实例应用与分析
1.5散列表
1.5.1散列表的定义
1.5.2散列函数
1.5.3基于散列的查找
1.5.4实例应用与分析
第2章树结构(教学视频:43分钟)
2.1树结构简介
2.1.1树的定义
2.1.2树的逻辑表示
2.1.3基本术语
2.1.4树的性质
2.1.5树的基本操作
2.1.6树与森林
2.1.7实例应用与分析
2.2二叉树
2.2.1二叉树的定义
2.2.2二叉树的性质
2.2.3二叉树的存储结构
2.2.4二叉树的基本操作
2.2.5实例应用与分析
2.3线索二叉树
2.3.1线索二叉树的定义
2.3.2线索二叉树的基本操作
2.4二叉查找树
2.4.1二叉查找树的定义
2.4.2二叉查找树的基本操作
2.4.3实例应用与分析
2.5红黑树
2.5.1红黑树的定义
2.5.2红黑树的基本操作
2.6B树
2.6.1B树的定义
2.6.2B树的基本操作
第3章图结构(教学视频:34分钟)
3.1图结构简介
3.2图的存储结构
3.2.1邻接矩阵存储
3.2.2邻接表存储
3.3图的基本操作和图的遍历
3.3.1图的基本操作
3.3.2深度优先遍历
3.3.3广度优先遍历
3.3.4实例应用与分析
第2篇基础算法篇
第4章算法入门(教学视频:30分钟)
4.1什么是算法
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.4基础算法应用实例
第5章排序算法(教学视频:49分钟)
5.1插入排序
5.1.1算法描述
5.1.2算法实现
5.1.3应用实例与分析
5.2冒泡排序
5.2.1算法描述
5.2.2算法实现
5.2.3应用实例与分析
5.3快速排序
5.3.1算法描述
5.3.2算法实现
5.3.3应用实例与分析
5.4归并排序
5.4.1算法描述
5.4.2算法实现
5.4.3应用实例与分析
5.5希尔排序
5.5.1算法描述
5.5.2算法实现
5.5.3应用实例与分析
5.6选择排序
5.6.1算法描述
5.6.2算法实现
5.6.3应用实例与分析
5.7堆排序
5.7.1堆
5.7.2堆排序算法描述
5.7.3算法实现
5.7.4应用实例与分析
5.8计数排序
5.8.1算法描述
5.8.2算法实现
5.8.3应用实例与分析
5.9基数排序
5.9.1算法描述
5.9.2算法实现
5.9.3应用实例与分析
5.10桶排序
5.10.1算法描述
5.10.2算法实现
5.10.3应用实例与分析
5.11排序算法的比较和选择
5.11.1排序算法的性能比较
5.11.2排序算法的选择标准
第6章查找算法(教学视频:22分钟)
6.1顺序查找
6.1.1算法描述
6.1.2算法实现
6.1.3应用实例与分析
6.2二分查找
6.2.1算法描述
6.2.2算法实现
6.2.3实例应用与分析
6.3二叉查找树
6.3.1二叉查找树的定义
6.3.2二叉查找树的基本操作回顾
6.3.3实例应用与分析
6.4分块查找
6.4.1算法描述
6.4.2算法实现
6.5B树查找算法
6.5.1算法描述
6.5.2算法实现
6.5.3扩展--B+树简介
6.6哈希查找
6.6.1算法描述
6.6.2算法实现
6.6.3实例应用及分析
第3篇高级算法篇
第7章高级图算法(教学视频:30分钟)
7.1拓扑排序
7.1.1算法描述
7.1.2算法实现
7.1.3实例分析与应用
7.2最小生成树
7.2.1算法描述
7.2.2算法实现
7.3单源最短路径
7.3.1算法描述
7.3.2算法实现
7.3.3应用实例与分析
7.4每对顶点间的最短路径
7.4.1算法描述
7.4.2算法实现
7.4.3应用实例与分析
7.5网络流
7.5.1流网络
7.5.2Ford-Fulkerson算法描述
7.5.3Ford-Fulkerson算法的实现
第8章动态规划(教学视频:17分钟)
8.1动态规划基础
8.1.1动态规划思想引例
8.1.2动态规划理论基础
8.2动态规划应用实例分析
8.2.1矩阵链乘法问题
8.2.2最长公共子序列问题
8.2.3背包问题
8.2.4求三角形最佳路径问题
8.2.5计算划分方案种类数问题
8.2.6设计竞赛题目问题
8.2.7双人游戏策略问题
8.2.8音乐CD最大曲目数问题
8.2.9求Jerry最快到达的时间问题
8.2.10陪审团人选问题
第9章贪心算法(教学视频:21分钟)
9.1贪心算法概述
9.1.1算法描述
9.1.2算法原理
9.2应用实例与分析
9.2.1活动选择问题
9.2.2任务调度问题
9.2.3闭区间不相交
9.2.4会场安排问题
9.2.5贪心算法在求最小生成树的应用
第10章综合趣味算法(教学视频:34分钟)
10.1矩阵运算
10.1.1矩阵的性质
10.1.2Strassen算法求矩阵乘积
10.2字符串算法
10.2.1朴素字符串匹配算法
10.2.2Rabin-Karp算法
10.3数论有关的基本算法
10.3.1基本数论概念
10.3.2求解最大公约数
10.3.3寻找素数
10.3.4整数的因子分解
第4篇算法实战篇
第11章数学趣题解决方法(教学视频:23分钟)
11.1求两个数的最大公约数和最小公倍数
11.2魔幻方阵的解法
11.3广场该建多大
11.4水仙花数
11.5通向女友之路
11.6八皇后问题
11.7洗扑克问题
11.8约瑟夫问题
11.9格雷码
11.10老鼠走迷宫
11.11骑士走棋盘
11.12三色球
11.13汉诺塔问题
11.14细胞的游戏
11.15超长整数加法
11.16阿姆斯壮数
11.17筛选求素数
11.18验证角谷猜想
11.19找出说谎人
11.20超级病毒
11.21数字的分解
11.22寻找完美数
11.23二维矩阵转一维矩阵
11.24求解低阶定积分
11.25迭代法开平方运算
11.26牛顿法解方程
11.27求解微分方程
11.28求解线性方程组
11.29梯形法求解定积分
第12章面试算法题精粹(教学视频:24分钟)
12.1常见基础题精粹
12.2常见算法编程题精粹
12.2.1遍历一次求取单链表的中间点
12.2.2实现单链表的排序
12.2.3判断两棵树是否相等
12.2.4寻找重复率最高的短信
12.2.5实现strcpy()函数
12.2.6字符串常见试题
12.2.7实现循环移动
12.3面试进阶问题
12.3.1寻找变位词集合
12.3.2咖啡罐问题
12.3.3判断两个链表是否相交
12.3.4寻找最大的"N"个数
12.3.5蜗牛爬杆问题
12.3.6判断单链表里是否有环
12.3.7代码括弧的校验
12.3.8查找数组中的最大值和最小值
猜您喜欢