自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 问答 (2)
  • 收藏
  • 关注

原创 图的拓扑排序

图的拓扑排序是图的宽度优先遍历的一个应用针对有向无环图;都是由前指向后,有向无环图一定存在拓扑序列,所以也被称为拓扑图一个有向无环图,一定至少有一个入度为0的点;要进行拓扑排序,思路很简单:入度:指向它的路径个数出度:从它指出去的路径个数1.以入度为零的点为突破口,将其入队2.遍历这个点指向的所有下一个点,再将下一个点的入度减一。3.不断重复1.2的操作,直至结束ps:用队列存储这些入度为零的点,遍历完毕的点出队,入度为零的点入队,邻接表存储路径。bool topsor

2022-02-15 10:40:42 571 2

原创 树与图的遍历

首先要理解树与图树是一种特殊的图,是无环连通图图分为两种图有向图和无向图无向图是一种特殊的有向图图的遍历主要就是是深度优先遍历和宽度优先遍历,都是基于dfs和bfs思想形成的,核心代码和主要思想也都相似。一.深度优先遍历就像是dfs,先选择一条路走到头,再回溯到支点走另一条路,直至终点。void dfs(int x){ vis[x] = 1;//记录x被访问过 for (int i = head[x]; i; i = nxt[i]) { int y = ver[i];

2022-02-13 14:42:11 253

原创 BFS和DFS

今天学习了两种搜索算法1.深度优先搜索dfs2.宽度优先搜索bfs两种算法有相同也有不同点都是对整个空间遍历,搜索的空间像一棵树一样 。dfs先向深搜,搜不到就会回溯。bfs是一层一层的搜索 。搜索完一层再进入下一层 。数据结构来看:dfs采用的是栈,bfs采用的是队列。使用空间看来:dfs大大小于bfsbfs具有最短路性,dfs没有。(bfs一层一层向下找,先找到的肯定是最短的)。一:dfs(最重要的是顺序)需要注意回溯和剪枝两种方法1.回溯将搜索过的区域回溯到本来的

2022-02-11 20:16:01 1034

原创 关于新学的哈希

哈希是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的信息摘要的函数。关于哈希表学到了两种运用方式一:存储结构,存储结构又有开放寻址法和拉链法两种方式二:字符串哈希方式。这些用法的本质都是将一个大的值域映射到一个小的空间。在一中,就表现为对一个数求

2022-02-09 20:47:47 386 1

原创 数据结构:堆

堆 (Heap)是 计算机科学 中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵 完全二叉树 的数组对象。 堆(heap)是计算机科学中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质: 堆总是一棵完全二叉树。 将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。今天学的是小根堆。小根堆的节点都小于左右子节点。倘若设根节点为x,那么左儿子就为2x,右儿子就为2x+1;关于堆的基本算法有两种:1.向上调整 2.向下调整。我们用s

2022-01-28 20:48:01 663

原创 关于并查集

关于并查集,并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询两种操作的一种数据结构。合并:将两个集合合并;查询:询问两个元素是否在一个集合当中。我们将每个集合都用一棵树来表示,树根的编号便是整个集合的编号,通过每个节点来存储它的父节点,我们用p[x]来表示父节点。那么便出现了几个问题:1.如何判断树根?2.如何求x的集合编号?3.如何合并两个集合?1.判断树根if(p[x]==x)2.求解x的集和编号while(p[x]

2022-01-26 01:35:11 90

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除