算法训练营:海量图解+竞赛刷题(入门篇)

算法训练营:海量图解+竞赛刷题(入门篇)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书以海量图解的形式,详细讲解常用的数据结构与算法,又融入大量的竞赛实例和解题技巧。

内容简介

通过对本书的学习,读者可掌握12种初级数据结构、15种常用STL函数、10种二叉树和图的应用,以及8种搜索技术,并领悟不同的数据结构和算法的精髓,熟练应用各种算法解决实际问题。

本书总计9章。第1章讲解C++语言基础,包括语法、函数、递归和数组;第2章讲解算法入门知识,包括算法复杂度计算、贪心算法、分治算法和STL应用;第3章讲解线性表的应用,包括顺序表、单链表、双向链表、循环链表和静态链表;第4章讲解栈和队列的应用,包括顺序栈、链栈、顺序队列和链队列;第5章讲解树的应用,包括树的存储、二叉树遍历与还原、哈夫曼编码;第6章讲解图论基础,包括图的存储、图的遍历和图的连通性;第7章讲解图的应用,包括最短路径、最小生成树、拓扑排序和关键路径;第8章讲解查找算法,包括哈希表、字符串模式匹配、二叉查找树和平衡二叉树;第9章讲解搜索技术,包括二分搜索、深度优先搜索、广度优先搜索和启发式搜索。

本书面向对算法感兴趣的读者,无论是想扎实内功或参加算法竞赛的学生,还是想进入名企的学生、求职者,抑或是想提升技术的在职人员,都可以参考本书。

作者简介

作者陈小玉,副教授,硕士,高级程序员,研究方向:智能计算、机器学习与数据挖掘。主讲《数据结构》、《算法设计与分析》、《人工智能》等专业课程,并发表过多篇计算机专业论文和项目。

章节目录

版权信息

内容简介

前言

第1章 语言基础

1.1 开启算法之旅:hello world!

1.2 常见数据类型及其表达范围

1.3 玩转输入输出

1.4 人生就是不断地选择:if…else

1.5 每天都有很多次重复:for/while

1.6 如何轻松写一个函数

1.7 从前有座山,山里有座庙:递归之法

1.8 信息携带者:定义一个结构体

1.9 巧用数组

1.10 玩转字符串

第2章 算法入门

2.1 算法之美

2.1.1 如何评价一个算法的优劣

2.1.2 算法复杂度的计算方法

2.2 贪心算法

2.2.1 贪心本质

2.2.2 最优装载问题

2.3 分治算法

2.3.1 分治算法秘籍

2.3.2 合并排序

2.3.3 快速排序

2.4 STL应用

2.4.1 vector

训练 间谍

2.4.2 栈

训练 Web导航

2.4.3 queue

训练 骑士移动

2.4.4 list

训练 士兵队列训练

2.4.5 deque

训练 度度熊学队列

2.4.6 priority_queue

训练 黑盒子

2.4.7 bitset

训练 集合运算

2.4.8 set/multiset

训练1 集合合并

训练2 并行处理

2.4.9 map/multimap

训练1 硬木种类

训练2 双重队列

训练3 水果

2.4.10 STL的常用函数

训练1 差的中位数

训练2 中位数

训练3 订单管理

训练4 字谜

第3章 线性表的应用

3.1 顺序表

3.2 单链表

3.3 双向链表

3.4 循环链表

3.5 静态链表

训练1 区块世界

训练2 悲剧文本

训练3 移动盒子

第4章 栈和队列的应用

4.1 顺序栈

4.2 链栈

4.3 顺序队列

4.4 链队列

训练1 括号匹配

训练2 铁轨

训练3 矩阵连乘

训练4 打印队列

训练5 并发模拟器

第5章 树的应用

5.1 树

5.1.1 树的存储

5.1.2 树、森林与二叉树的转换

5.2 二叉树

5.2.1 二叉树的性质

5.2.2 二叉树的存储结构

5.2.3 二叉树的创建

5.3 二叉树遍历

5.3.1 先序遍历

5.3.2 中序遍历

5.3.3 后序遍历

5.3.4 层次遍历

5.3.5 遍历序列还原树

训练1 新二叉树

训练2 还原树

训练3 树

5.4 哈夫曼树

原理 哈夫曼编码

训练1 围栏修复

训练2 信息熵

训练3 转换哈夫曼编码

训练4 可变基哈夫曼编码

第6章 图论基础

6.1 图的存储

6.1.1 邻接矩阵

6.1.2 边集数组

6.1.3 邻接表

6.1.4 链式前向星

训练1 最大的节点

训练2 有向图D和E

训练3 奶牛排序

6.2 图的遍历

6.2.1 广度优先遍历

6.2.2 深度优先遍历

训练1 油田

训练2 理想路径

训练3 骑士的旅程

训练4 抓住那头牛

6.3 图的连通性

6.3.1 连通性的相关知识

6.3.2 Tarjan算法

训练1 电话网络

训练2 道路建设

训练3 图的底部

训练4 校园网络

第7章 图的应用

7.1 最短路径

7.1.1 Dijkstra算法

7.1.2 Floyd算法

7.1.3 Bellman-Ford算法

7.1.4 SPFA算法

训练1 重型运输

训练2 货币兑换

训练3 虫洞

训练4 最短路径

7.2 最小生成树

7.2.1 Prim算法

7.2.2 Kruskal算法

训练1 丛林之路

训练2 联网

训练3 空间站

训练4 道路建设

7.3 拓扑排序

原理 拓扑排序

训练1 家族树

训练2 全排序

训练3 标签球

训练4 秩序

7.4 关键路径

原理 关键路径

训练1 关键路径

训练2 指令安排

训练3 家务琐事

训练4 免费DIY之旅

训练5 游戏玩家

第8章 查找算法

8.1 哈希表

8.1.1 散列函数

8.1.2 处理冲突的方法

8.1.3 散列查找及性能分析

训练1 雪花

训练2 公式

训练3 正方形

8.2 字符串模式匹配

8.2.1 BF算法

8.2.2 KMP算法

训练1 统计单词数

训练2 KMP字符串匹配

8.3 二叉查找树

原理 二叉查找树详解

训练1 落叶

训练2 完全二叉搜索树

训练3 硬木种类

训练4 二叉搜索树

8.4 平衡二叉树

原理 AVL树详解

训练1 平衡二叉树

训练2 双重队列

训练3 黑盒子

训练4 硬木种类

第9章 搜索技术

9.1 二分搜索

原理 二分搜索技术

训练1 跳房子游戏

训练2 烘干衣服

训练3 花环

训练4 电缆切割

9.2 深度优先搜索

9.2.1 回溯法

9.2.2 子集树

9.2.3 m叉树

9.2.4 排列树

训练1 魅力手镯

训练2 图的m着色问题

训练3 N皇后问题

9.2.5 DFS+剪枝优化

训练1 数独游戏

训练2 生日蛋糕

训练3 木棒

9.3 广度优先搜索

9.3.1 分支限界法

9.3.2 队列式广度优先搜索

9.3.3 优先队列式广度优先搜索

训练1 迷宫问题

训练2 加满油箱

9.3.4 嵌套广度优先搜索

训练 推箱子

9.3.5 双向广度优先搜索

训练 魔鬼Ⅱ

9.4 启发式搜索

9.4.1 A*算法

9.4.2 IDA*算法

训练1 八数码

训练2 八数码II

训练3 第K短路

训练4 幂运算

算法训练营:海量图解+竞赛刷题(入门篇)是2021年由电子工业出版社出版,作者陈小玉。

得书感谢您对《算法训练营:海量图解+竞赛刷题(入门篇)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
图解数据结构与算法 电子书
图解+步骤学数据结构,适合非编程读者。
Java代码审计(入门篇) 电子书
Java代码审计初学者指南,系统介绍Java代码安全审计入门技术。
Spark海量数据处理:技术详解与平台实战 电子书
在数字经济时代,数据是重要的资源要素;同时,新的数据又在源源不断地产生,企业面临的一个基本问题就是如何管理和利用这些数据,这对传统的数据处理方法与分析框架提出了新的诉求和挑战,也是全球业界与学界为关心的问题。为了满足大数据时代对信息的快速处理的需求,一个分布式的开源计算框架Apache Spark应运而生。经过十年的发展,Spark已经成为目前大数据处理的标杆,在整个业界得到了广泛的使用。对大数据工程师来说,用Spark构建数据管道无疑是很好的选择,而对数据科学家来说,Spark也是高效的数据探索工具。 本书基于Spark发行版2.4.4写作而成,包含大量的实例与一个完整项目,技术理论与实战相结合,层次分明,循序渐进。本书不仅介绍了如何开发Spark应用的基础内容,包括Spark架构、Spark编程、SparkSQL、Spark调优等,还探讨了Structured Streaming、Spark机器学习、Spark图挖掘、Spark深度学习、Alluxio系统等高级主题,同时完整实现了一个企业背景调查系统,借鉴了数据湖与Lambda架构的思想,涵盖了批处理、流处理应用开发,并加入了一些开源组件来满足业务需求。学习该系统可以使读者从实战中巩固所学,并将技术理论与应用实战融会贯通。 本书适合准备学习Spark的开发人员和数据分析师,以及准备将Spark应用到实际项目中的开发人员和管理人员阅读,也适合计算机相关专业的高年级本科生和研究生学习和参考,对于具有一定的Spark使用经验并想进一步提升的数据科学从业者也是很好的参考资料。
奔跑吧Linux内核入门篇 电子书
1.原理 基础,从调试Linux内核到动手编写一个简单的内核模块,真正从零开始学习Linux内核。 2.实验 案例,70余个创新实验贯穿全书,与你分享业内一线项目经验。 3.课件 视频,教学资源丰富,视频讲解透彻,与你共享精品在线配套资源(可在异步社区下载)。 4.涵盖当前Linux社区中新的开发工具和社区运作方式,反映Linux内核社区新发展。
Python算法详解 电子书
- 以“从入门到精通”的写作方法构建内容,让读者入门容易。 为了使读者能够完全看懂本书的内容,本书遵循“从入门到精通”基础类图书的写法,循序渐进地讲解算法的知识。 - 破解语言难点,以“技术解惑”贯穿全书,绕过学习中的陷阱。 为了帮助读者学懂算法,每章都会有“技术解惑”模块,让读者知其然又知其所以然。 - 书中包含大量典型实例。 书中有195个实例,通过这些实例的练习,读者有更多的实践演练机会。 - 通过QQ群和网站论坛实现教学互动,形成互帮互学的朋友圈。 本书作者为了方便给读者答疑,特地提供了网站论坛、QQ群等技术支持,并且随时在线与读者互动。让大家在互学互帮中形成一个良好的学习编程的氛围。网站名称和群号,详见本书前言部分。