-
内容大纲
本书图文并茂、通俗易懂,详细讲解常用的算法知识,又融入大量的竞赛实例和解题技巧,可帮助读者熟练应用各种算法解决实际问题。
本书总计8章。第1章讲解STL,涉及双端队列、优先队列、位图、集合、映射和STL中的常用函数;第2章讲解实用的数据结构,涉及并查集、倍增、稀疏表、区间最值查询、最近公共祖先、树状数组和线段树;第3章讲解查找算法,涉及散列表、字符串模式匹配和字典树;第4章讲解平衡树,涉及树高与性能、平衡二叉搜索树、树堆和伸展树;第5章讲解图论提高方面的知识,涉及连通图与强连通图、桥与割点、双连通分量的缩点和Tarjan算法;第6章讲解图论算法,涉及最小生成树、最短路径、拓扑排序和关键路径;第7章讲解搜索算法提高方面的知识,涉及剪枝优化、嵌套广度优先搜索、双向广度优先搜索和启发式搜索;第8章讲解动态规划提高方面的知识,涉及树形动态规划、状态压缩动态规划和动态规划优化。
本书面向对算法感兴趣的读者,无论是想扎实内功或参加算法竞赛的学生,还是想进入名企的学生、求职者,抑或是想提升核心竞争力的在职人员,都可以参考本书。若读者想系统学习数据结构与算法,则可参考《算法训练营:入门篇》(全彩版)和《算法训练营:进阶篇》(全彩版)。 -
作者介绍
陈小玉,南阳理工学院副教授,高级程序员,主要研究方向为算法优化和机器学习。出版著作有《趣学算法》《趣学数据结构》《算法训练营:海量图解+竞赛刷题(入门篇)》《算法训练营:海量图解+竞赛刷题(进阶篇)》,所教学生多次获得ACM、蓝桥杯等算法竞赛奖项。 -
目录
第1章 STL
1.1 deque(双端队列)
训练 度度熊学队列
1.2 priority_queue(优先队列)
训练1 第k大的数
训练2 表演评分
1.3 bitset(位图)
1.3.1 定义和初始化
1.3.2 基本操作
训练 集合运算
1.4 set、multiset(集合、多重集合)
训练1 集合合并
训练2 并行处理
1.5 map、multimap(映射、多重映射)
训练1 硬木种类
训练2 水果
1.6 STL中的常用函数
1.6.1 fill()
1.6.2 nth_element()
1.6.3 lower_bound()、upper_bound()
1.6.4 next_permutation()、pre_permutation()
训练1 中位数
训练2 字谜
第2章 实用的数据结构
2.1 并查集
训练1 畅通工程
训练2 方块栈
2.2 倍增、稀疏表(ST)、区间最值查询(RMQ)
2.2.1 倍增
2.2.2 稀疏表
2.2.3 区间最值查询
训练1 区间最值差
训练2 最频繁值
2.3 最近公共祖先(LCA)
2.3.1 暴力搜索法
2.3.2 树上倍增法
2.3.3 在线区间最值查询算法
2.3.4 离线Tarjan算法
训练1 最近公共祖先
训练2 树上距离
2.4 树状数组
2.4.1 一维树状数组
2.4.2 多维树状数组
训练1 数星星
训练2 矩形区域查询
2.5 线段树
2.5.1 基本操作
2.5.2 懒操作
训练1 敌兵布阵
训练2 简单的整数问题
第3章 查找算法
3.1 散列表
3.1.1 散列函数
3.1.2 开放地址法
3.1.3 链地址法
3.1.4 建立公共溢出区
3.1.5 散列查找及其性能分析
训练 雪花
3.2 字符串模式匹配
3.2.1 BF算法
3.2.2 KMP算法
训练1 统计单词数
训练2 字符串匹配
3.3 字典树(Trie树)
3.3.1 创建
3.3.2 查找
3.3.3 应用
训练 单词翻译
第4章 平衡树
4.1 树高与性能
4.2 平衡二叉搜索树(AVL树)
4.2.1 调整平衡的方法
4.2.2 插入
4.2.3 创建
4.2.4 删除
训练 双重队列
4.3 树堆(Treap)
4.3.1 右旋和左旋
4.3.2 插入
4.3.3 删除
4.3.4 前驱
4.3.5 后继
训练 少林功夫
4.4 伸展树(Splay树)
4.4.1 时空局部性的原理
4.4.2 右旋和左旋
4.4.3 伸展
4.4.4 查找
4.4.5 插入
4.4.6 分裂
4.4.7 合并
4.4.8 删除
4.4.9 区间操作
4.4.10 算法分析
训练1 玩链子
训练2 超强记忆
第5章 图论提高
5.1 连通图与强连通图
5.2 桥与割点
5.3 双连通分量的缩点
5.4 Tarjan算法
5.4.1 无向图的桥
5.4.2 无向图的割点
5.4.3 有向图的强连通分量
训练1 道路建设
训练2 校园网络
第6章 图论算法
6.1 最小生成树
6.1.1 Prim算法
6.1.2 Kruskal算法
训练1 丛林之路
训练2 联网
6.2 最短路径
6.2.1 Dijkstra算法
6.2.2 Floyd算法
6.2.3 Bellman-Ford算法
6.2.4 SPFA算法
训练1 重型运输
训练2 货币兑换
训练3 虫洞
6.3 拓扑排序
训练1 家族树
训练2 标签球
6.4 关键路径
训练1 指令安排
训练2 家务琐事
第7章 搜索算法提高
7.1 剪枝优化
训练1 数独游戏
训练2 小木棍
7.2 嵌套广度优先搜索
训练 推箱子
7.3 双向广度优先搜索
训练 魔鬼Ⅱ
7.4 启发式搜索
7.4.1 A*算法
7.4.2 IDA*算法
训练1 八数码问题
训练2 第k短路径
第8章 动态规划提高
8.1 树形动态规划
训练1 战略游戏
训练2 工人请愿书
8.2 状态压缩动态规划
训练1 旅行商问题
训练2 玉米田
8.3 动态规划优化
8.3.1 倍增优化
8.3.2 数据结构优化
8.3.3 单调队列优化
训练1 最长公共上升子序列
训练2 滑动窗口
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...