算法学习与应用从入门到精通PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:张玲玲编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2016
- ISBN:7115418852
- 页数:489 页
第1章 算法是程序的灵魂 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
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
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
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
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
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
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
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
9.1 约瑟夫环 212
9.2 大整数运算 214
9.2.1 数组实现大整数运算 214
9.2.2 链表实现大整数运算 220
9.3 计算机进制转换 224
9.4 中序表达式转换为后序表达式 227
第10章 解决数学问题 231
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
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
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
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
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.7 阶乘 333
14.7.1 使用递归法 334
14.7.2 实现大数的阶乘 335
14.8 青蛙过河 339
14.9 过河卒 342
14.10 素数组合 344
14.11 校验码问题 346
14.12 老师排座位 347
14.13 模拟立体图 349
14.14 采药问题 351
14.15 等价表达式问题 352
14.16 购买年货问题 355
第15章 常见算法应用实践 358
15.1 实现Ping功能中的校验和算法 359
15.2 24点游戏算法 363
15.3 洗牌 368
15.4 21点游戏 370
15.5 2048游戏 375
15.6 引用计数算法 386
15.7 猫捉老鼠游戏 388
第16章 俄罗斯方块游戏 393
16.1 游戏功能描述 394
16.2 游戏总体设计 394
16.2.1 功能模块设计 394
16.2.2 数据结构设计 396
16.2.3 构成函数介绍 397
16.3 游戏具体实现 398
16.3.1 预处理 398
16.3.2 主函数——递归算法 400
16.3.3 初始化界面处理——分治算法 401
16.3.4 时钟中断处理 402
16.3.5 成绩、速度和帮助处理 403
16.3.6 满行处理——碰撞检测算法 403
16.3.7 方块显示和消除处理——分治算法 405
16.3.8 游戏方块操作判断处理——枚举算法 406
第17章 学生成绩管理系统 409
17.1 系统总体描述 410
17.1.1 开发目标和项目背景介绍 410
17.1.2 系统功能模块 410
17.2 系统总体设计 411
17.2.1 功能模块设计 411
17.2.2 数据结构设计 413
17.2.3 构成函数介绍 413
17.3 系统具体实现 415
17.3.1 预处理 415
17.3.2 主函数main——递归算法 415
17.3.3 系统主菜单函数——模拟算法 416
17.3.4 表格显示信息 417
17.3.5 信息查找定位——分治算法 417
17.3.6 格式化输入数据——递归、分治算法 418
17.3.7 增加学生记录——试探算法 418
17.3.8 查询学生记录——分治算法 419
17.3.9 删除学生记录——分治、递归算法 420
17.3.10 修改学生记录——递归、模拟算法 421
17.3.11 插入学生记录——递推算法 421
17.3.12 统计学生记录——分治算法 423
17.3.13 排序处理——插入排序算法 423
17.3.14 存储学生信息 424
第18章 绘图板系统 428
18.1 项目规划分析 429
18.1.1 绘图板的核心技术 429
18.1.2 功能描述 429
18.1.3 总体设计 429
18.2 设计数据结构 430
18.2.1 设计数据结构 430
18.2.2 规划系统函数 430
18.3 具体编码 432
18.3.1 预处理模块 432
18.3.2 功能控制模块——递推、递归算法 434
18.3.3 保存加载模块——递归算法 435
18.3.4 鼠标控制模块——枚举、递归算法 436
18.3.5 图形绘制模块——递归、分治、枚举、递推算法 437
18.3.6 主函数模块——模拟、递归算法 447
18.4 项目调试 451
第19章 UDP传输系统 452
19.1 项目规划分析 453
19.1.1 功能描述 453
19.1.2 功能模块设计 453
19.1.3 系统流程图 454
19.1.4 广播消息发送流程 454
19.1.5 广播消息接收流程图 455
19.1.6 多播消息接收流程图 456
19.2 设计数据结构 457
19.2.1 定义常量 457
19.2.2 定义全局变量 458
19.3 规划系统函数 458
19.4 具体编码 459
19.4.1 预处理 460
19.4.2 初始化模块处理 460
19.4.3 获取参数——枚举算法 461
19.4.4 用户帮助模块——递归算法 462
19.4.5 广播信息发送模块——试探算法 463
19.4.6 广播信息接收模块——试探算法 464
19.4.7 多播功能控制模块——试探算法 465
19.4.8 多播消息发送模块——试探算法 466
19.4.9 多播消息接收模块——试探算法 467
19.4.10 主函数——递归算法 467
19.5 项目调试 468
第20章 推箱子游戏 469
20.1 项目规划分析 470
20.1.1 功能描述 470
20.1.2 功能模块分析 470
20.1.3 剖析执行流程 470
20.2 设计数据结构 472
20.3 规划系统函数 472
20.4 具体编码 475
20.4.1 预处理 475
20.4.2 初始化模块——递归算法 475
20.4.3 画图模块——试探算法 478
20.4.4 移动箱子模块——试探、分治、递归、枚举算法 479
20.4.5 移动小人模块——枚举、试探算法 482
20.4.6 功能控制模块——递归、分治算法 486
20.4.7 系统主函数——枚举、模拟、递归、试探算法 487
20.5 项目调试 488
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《当代翻译美学的理论诠释与应用解读》宁建庚著 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《羊脂球 莫泊桑短篇小说选》(法)莫泊桑著;张英伦译 2010
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019