产品特色
编辑推荐
本书的特色是实现了入门知识、实例演示、范例演练、技术解惑、综合实战5大部分内容的融合,让读者看得懂、用得上、学得会。
一本书的容量,讲解了入门类、范例类和项目实战类三类图书的内容。
丰富的配套资源 学习更高效
320个实例,更多的实践演练机会
753分钟视频讲解,降低学习难度
5个综合案例,项目实战演练
74个技术解惑,破解学习难点
“技术讲解”→范例演练”→“技术解惑”贯穿全书,全面掌握算法应用
技术讲解:通过320个实例,循序渐进地讲解了算法应用的各个知识点。
范例演练: 5个综合实例,使读者具有应用算法解决实际项目的能力。
技术解惑:把容易混淆的概念单独讲解和剖析,帮助读者绕过学习中的陷阱。
QQ群+网站论坛实现教学互动,形成互帮互学的朋友圈
网站论坛:读者答疑/学习辅导/PPT资源下载读者QQ群:疑惑快速解答/和作者直接交流
内容简介
算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。算法能够告诉开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需遵循这个思路去实现即可。本书循序渐进、由浅入深地详细讲解了算法实现的核心技术,并通过具体实例的实现过程演练了各个知识点的具体使用流程。
全书共20章,其中,第1章讲解了算法为什么是程序的灵魂;第2~8章分别讲解了常用的算法,如线性表、队列和栈,树,图,查找算法,内部排序算法,外部排序算法等知识,这些内容都是算法技术核心的语法知识;第9~15章分别讲解了经典的数据结构问题、解决数学问题、解决趣味问题、解决图像问题、算法的经典问题、解决奥赛问题、常见算法应用实践等高级编程技术,这些内容是算法技术的重点和难点;第16~20章分别通过5个综合实例的实现过程,介绍了算法在综合开发项目中的使用流程和发挥的作用。全书内容以“技术解惑”和“实践应用”贯穿全书,引领读者全面掌握算法的核心技术。
本书不但适合算法研究和学习的初学者,也适合有一定算法基础的读者,还可以作为大中专院校相关专业师生的学习用书和培训学校的教材。
作者简介
张玲玲,计算机硕士,杰出程序员和算法专家,在算法研究和应用上很有心得,曾经开发过众多的游戏应用、系统软件的。业余期间,曾经在国内主流期刊中发表过多篇算法领域的杰出论文。
目录
第1章 算法是程序的灵魂 1
(视频总计18分钟,技术解惑1个)
1.1 算法的基础 2
1.1.1 算法的特征 2
1.1.2 何为算法 2
1.2 计算机中的算法 3
1.2.1 认识计算机中的算法 3
1.2.2 为什么说算法是程序的
灵魂 4
1.3 在计算机中表示算法的方法 4
1.3.1 用流程图来表示算法 4
1.3.2 用N-S流程图来表示算法 6
1.3.3 用计算机语言表示算法 6
1.4 技术解惑 6
第2章 常用的算法思想 8
(视频总计51分钟,实例15个,技术解惑8个)
2.1 枚举算法思想 9
2.1.1 枚举算法基础 9
2.1.2 实战演练—百钱买百鸡 9
2.1.3 实战演练—解决
“填写运算符”问题 10
2.2 递推算法思想 12
2.2.1 递推算法基础 12
2.2.2 实践演练—解决
“斐波那契数列”问题 12
2.2.3 实践演练—解决
“银行存款”问题 14
2.3 递归算法思想 15
2.3.1 递归算法基础 15
2.3.2 实践演练—解决“汉诺塔”
问题 16
2.3.3 实践演练—解决“阶乘”
问题 18
2.4 分治算法思想 19
2.4.1 分治算法基础 19
2.4.2 实践演练—解决
“大数相乘”问题 19
2.4.3 实践演练—欧洲冠军杯
比赛日程安排 21
2.5 贪心算法思想 23
2.5.1 贪心算法基础 23
2.5.2 实践演练—解决“装箱”
问题 24
2.5.3 实践演练—解决
“找零方案”问题 26
2.6 试探法算法思想 27
2.6.1 试探法算法基础 27
2.6.2 实践演练—解决
“八皇后”问题 28
2.6.3 实践演练—体彩29选
7彩票组合 29
2.7 迭代算法 30
2.7.1 迭代算法基础 30
2.7.2 实践演练—解决
“求平方根”问题 31
2.8 模拟算法思想 32
2.8.1 模拟算法的思路 32
2.8.2 实践演练—解决
“猜数字游戏”问题 32
2.8.3 实践演练—解决
“掷骰子游戏”问题 33
2.9 技术解惑 34
2.9.1 衡量算法的标准是什么 34
2.9.2 在什么时候选择使用
枚举法 36
2.9.3 递推和递归有什么差异 36
2.9.4 总结分治法能解决什么
类型的问题 37
2.9.5 分治算法的机理是什么 37
2.9.6 为什么说贪婪算法并不是最
优解决问题的方案 37
2.9.7 回溯算法会影响算法
效率吗 38
2.9.8 递归算法与迭代算法
有什么区别 38
第3章 线性表、队列和栈 39
(视频总计35分钟,实例9个,技术解惑5个)
3.1 线性表详解 40
3.1.1 线性表的特性 40
3.1.2 顺序表操作 41
3.1.3 实践演练—顺序表操作
函数 44
3.1.4 实践演练—操作顺
序表 45
3.1.5 链表操作 48
3.1.6 实践演练—定义链表操作
函数 51
3.1.7 实践演练—操作链表 52
3.2 先进先出的队列详解 53
3.2.1 什么是队列 54
3.2.2 链队列和循环队列 55
3.2.3 队列的基本操作 55
3.2.4 队列的链式存储 55
3.2.5 实践演练—完整的顺序
队列的操作 56
3.2.6 实践演练—完整的循环
队列的操作 57
3.2.7 实践演练—实现一个
排号程序 59
3.3 后进先出栈 60
3.3.1 什么是栈 61
3.3.2 栈的基本分类 61
3.3.3 实践演练—栈操作
函数 63
3.3.4 实践演练—测试栈
操作 64
3.4 技术解惑 65
3.4.1 线性表插入操作的时间
复杂度是多少 65
3.4.2 线性表删除操作的时间
复杂度是多少 65
3.4.3 线性表按值查找操作的
时间复杂度是多少 66
3.4.4 线性表链接存储(单链表)
操作的11种算法是什么 66
3.4.5 堆和栈的区别是什么 70
第4章 树 71
(视频总计35分钟,实例9个,技术解惑5个)
4.1 树基础 72
4.1.1 什么是树 72
4.1.2 树的相关概念 72
4.2 二叉树详解 73
4.2.1 二叉树的定义 73
4.2.2 二叉树的性质 74
4.2.3 二叉树存储 75
4.2.4 操作二叉树 77
4.2.5 遍历二叉树 79
4.2.6 线索二叉树 82
4.2.7 实践演练—测试二叉树
操作函数 85
4.2.8 实践演练—C++的二叉树
操作 87
4.2.9 实践演练—实现各种线索
二叉树的操作 89
4.2.10 实践演练—测试线索
二叉树的操作 91
4.3 霍夫曼树 92
4.3.1 霍夫曼树基础 93
4.3.2 实践演练—实现各种
霍夫曼树操作 95
4.3.3 实践演练—测试霍夫曼树
的操作 97
4.3.4 总结霍夫曼编码的算法
实现 98
4.4 技术解惑 100
4.4.1 树和二叉树的差别是
什么 100
4.4.2 二叉树和链表的效率谁
更牛 100
4.4.3 如何打印二叉树中的
所有路径 100
第5章 图 101
(视频总计40分钟,实例8个,技术解惑4个)
5.1 图的起源 102
5.2 图的相关概念 103
5.3 存储结构 105
5.3.1 表示顶点之间相邻关系的
邻接矩阵 106
5.3.2 邻接表 107
5.3.3 十字链表 108
5.3.4 实践演练—创建一个邻接
矩阵 109
5.3.5 实践演练—测试霍夫曼树
的操作 111
5.4 图的遍历 112
5.4.1 深度优先搜索 113
5.4.2 广度优先搜索 114
5.4.3 实践演练—求一条包含
图中所有顶点的简单
路径 117
5.4.4 实践演练—求距v0的
各顶点中最短路径长度
最长的一个顶点 118
5.4.5 实践演练—实现图的
遍历操作方法 118
5.4.6 实践演练—实现图的
遍历操作 120
5.5 图的连通性 120
5.5.1 无向图连通分量 121
5.5.2 最小生成树 121
5.5.3 实践演练—创建一个最小
生成树 123
5.5.4 实践演练—调用最小生成
树函数实现操作 123
5.5.5 关键路径 124
5.6 寻求最短路径 128
5.6.1 求某一顶点到其他各顶点的
最短路径 128
5.6.2 任意一对顶点间的
最短路 129
5.6.3 实践演练—创建最短路径
算法函数 131
5.6.4 实践演练—调用最短路径
算法实现测试 132
5.7 技术解惑 132
5.7.1 几种最短路径算法的
比较 132
5.7.2 邻接矩阵与邻接表的
对比 134
5.7.3 如何表示有向图的十字链表
存储 135
5.7.4 比较深度优先算法和广度
优先算法 135
第6章 查找算法 136
(视频总计37分钟,实例8个,技术解惑3个)
6.1 几个相关概念 137
6.2 基于线性表的查找法 137
6.2.1 顺序查找法 137
6.2.2 实践演练—实现顺序查找
算法 138
6.2.3 实践演练—改进的顺序
查找算法 139
6.2.4 折半查找法 140
6.2.5 实践演练—使用折半查找
算法查找数据 140
6.2.6 实践演练—查找10个已
排好序的数 141
6.2.7 分块查找法 142
6.3 基于树的查找法 143
6.3.1 二叉排序树 143
6.3.2 实践演练—将数据插入到
二叉树节点中 147
6.3.3 实践演练—删除二叉树中
一个节点 148
6.3.4 平衡二叉排序树 150
6.4 哈希法 155
6.4.1 哈希法的基本思想 155
6.4.2 构造哈希函数 155
6.4.3 处理冲突 156
6.4.4 哈希表的查找过程 157
6.5 索引查找 158
6.5.1 索引查找的过程 158
6.5.2 实践演练—索引查找法
查找指定的关键字 158
6.5.3 实践演练—实现索引查找并插入一个新关键字 160
6.6 技术解惑 161
6.6.1 分析查找算法的性能 161
6.6.2 演示对二叉树的完整
操作 162
6.6.3 分析哈希法的性能 164
第7章 内部排序算法 166
(视频总计39分钟,实例10个,技术解惑6个)
7.1 排序基础 167
7.1.1 排序的目的和过程 167
7.1.2 内部排序与外部排序 167
7.1.3 稳定排序与不稳定排序 167
7.2 插入排序算法 168
7.2.1 直接插入排序 168
7.2.2 实践演练—编写直接插入
排序算法 169
7.2.3 实践演练—插入排序算法
对数据进行排序处理 169
7.2.4 折半插入排序 170
7.2.5 表插入排序 170
7.2.6 希尔排序 171
7.2.7 实践演练—使用希尔排序
算法对数据进行排序
处理 172
7.2.8 实践演练—使用希尔排序
处理数组 173
7.3 交换类排序法 174
7.3.1 冒泡排序(相邻比序法) 174
7.3.2 快速排序 174
7.3.3 实践演练—用冒泡排序
算法实现对数据的排序
处理 175
7.3.4 实践演练—使用快速排序
算法 177
7.4 选择类排序法 178
7.4.1 直接选择排序 178
7.4.2 树形选择排序 179
7.4.3 堆排序 179
7.4.4 实践演练—直接选择排序
算法对数据的排序处理 181
7.4.5 实践演练—堆排序算法
实现排序处理 182
7.5 归并排序 183
7.5.1 归并排序思想 183
7.5.2 两路归并算法的思路 184
7.5.3 实现归并排序 185
7.5.4 实践演练—用归并算法
实现排序处理 186
7.5.5 实践演练—使用归并排序
算法求逆序对 188
7.6 基数排序 189
7.6.1 多关键字排序 189
7.6.2 链式基数排序 189
7.7 技术解惑 192
7.7.1 插入排序算法的描述是
什么 192
7.7.2 希尔排序和插入排序谁
更快 192
7.7.3 快速排序的时间耗费是
多少 192
7.7.4 堆排序与直接选择排序的
区别是什么 193
7.7.5 归并排序的效率如何,应该
如何选择 193
7.7.6 综合比较各种排序方法 193
第8章 外部排序算法 195
(视频总计32分钟)
8.1 外部信息概览 196
8.1.1 磁带存储器 196
8.1.2 磁盘存储器 197
8.2 外部排序的基本方法 198
8.2.1 磁盘排序 198
8.2.2 磁带排序 201
8.3 文件的基础知识 204
8.4 文件组织方式 205
8.4.1 顺序文件 205
8.4.2 索引文件 205
8.4.3 ISAM文件 206
8.4.4 VSAM文件 207
8.4.5 散列文件 209
8.4.6 多关键字文件 209
第9章 经典的数据结构问题 211
(视频总计31分钟,实例5个)
9.1 约瑟夫环 212
9.2 大整数运算 214
9.2.1 数组实现大整数运算 214
9.2.2 链表实现大整数运算 220
9.3 计算机进制转换 224
9.4 中序表达式转换为后序表达式 227
第10章 解决数学问题 231
(视频总计36分钟,实例12个)
10.1 最大公约数和最小公倍数 232
10.2 哥德巴赫猜想 233
10.3 完全数 235
10.4 亲密数 237
10.5 自守数 238
10.6 方程求解 239
10.6.1 用高斯消元法解方程组 239
10.6.2 用二分法解非线性
方程 242
10.6.3 用牛顿迭代法解非线性
方程 243
10.7 矩阵运算 244
10.8 实现n×n整数方阵的转置 246
10.9 一元多项式运算 247
10.9.1 一元多项式的加法运算 247
10.9.2 一元多项式的减法
运算 250
第11章 解决趣味问题 257
(视频总计43分钟,实例16个)
11.1 歌星大奖赛 258
11.2 借书方案 258
11.3 打鱼还是晒网 259
11.4 捕鱼和分鱼 260
11.5 出售金鱼 261
11.6 平分七筐鱼 262
11.7 绳子的长度和井深 263
11.8 鸡兔同笼 264
11.9 汉诺塔 265
11.9.1 递归法 266
11.9.2 非递归法 267
11.10 马踏棋盘 268
11.10.1 使用循环查找法 269
11.10.2 使用递归法 271
11.10.3 使用栈方法 272
11.11 三色球问题 275
11.12 新郎和新娘问题 276
11.13 计算年龄 278
第12章 解决图像问题 279
(视频总计31分钟,实例6个)
12.1 “八皇后”问题 280
12.1.1 使用递归法 280
12.1.2 使用循环法 282
12.2 生命游戏 284
12.3 黑白棋问题 287
12.4 “骑士迷宫”问题 293
12.5 找出迷宫问题中的所有路径 298
第13章 算法的经典问题 300
(视频总计36分钟,实例8个)
13.1 存钱利息最大化 301
13.2 背包问题 303
13.2.1 使用动态规划法 303
13.2.2 使用递归法 307
13.3 农夫过河 309
13.4 三色旗问题 311
13.5 取石子 313
13.6 停车场管理 316
13.7 约瑟夫生死者游戏 323
第14章 解决奥赛问题 325
(视频总计55分钟,实例7个)
14.1 孪生素数问题 326
14.2 百钱买百鸡问题 327
14.3 马克思手稿中的数学题 328
14.4 正整数分解质因数 329
14.5 水仙花数 330
14.6 素数 330
14.6.1 求1000以内的所有
素数 331
14.6.2 求1000以内的回文
素数 332
14.6.3 求1000以内的平方回
文数 333
14.
算法学习与应用从入门到精通 epub pdf mobi txt 电子书 下载 2024
算法学习与应用从入门到精通 下载 epub mobi pdf txt 电子书 2024
评分
☆☆☆☆☆
挺好的,物超所值。喜欢
评分
☆☆☆☆☆
虽然还没有细看,但我认为这绝对是我阅读过的最好的算法书。全书只介绍了排序,查找,图,字符串等基本算法,但是非常细致,且有逻辑性,最赞的是每个算法都有图例解释,很形象。我建议初学者先吃透这本书再去看算法导论,这样学习起来更顺畅
评分
☆☆☆☆☆
正版,方便快,一直在网上买书
评分
☆☆☆☆☆
书很好,还没开始看,但是做活动便宜死了,不买血亏,买了血赚。
评分
☆☆☆☆☆
看了一章,简洁易栋,是我看过唯一一本不枯燥的算法书。
评分
☆☆☆☆☆
不错不错,这个性价比已经很高了
评分
☆☆☆☆☆
书还是真的很不错呢,非常棒,很好很好,值得买的,大家快出手,快快快!
评分
☆☆☆☆☆
书没问题,没发现破损,包装也ok。趁着打折有券,买了好多书,没花多少钱,就看我能不能今年看完了
评分
☆☆☆☆☆
比较详细的说明了各种算法,对我来说还是比较合适。