图论
文章平均质量分 60
ZZZWWWFFF_
这个作者很懒,什么都没留下…
展开
-
【算法与数据结构】—— 并查集
目录 1. 概论 2. 并查集的现实意义 3. find( )函数的定义与实现 4. join( )函数的定义与实现 5. 路径压缩算法之一(优化find( )函数) 实战检验 首先在开始我们学习并查集之前呢,我想先请读者看一下这篇文章点击进入并查集详解 ——图文解说,简单易懂,理解一下并查集的基础理论知识,也算是铺垫吧 1. 概论 定义: 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是..转载 2022-03-13 23:00:27 · 299 阅读 · 0 评论 -
BFS(广度优先搜索算法)入门
/** * 广度优先搜索 * @param Vs 起点 * @param Vd 终点 */ bool BFS(Node& Vs, Node& Vd){ queue<node> Q; Node Vn, Vw; int i; //初始状态将起点放进队列Q Q.push(Vs); hash(Vw) = true;//设置节点已经访问过了! while (!Q.empt.原创 2022-03-02 20:15:15 · 628 阅读 · 0 评论 -
DFS(深度优先搜索算法)入门
首先在开始我们的学习之前,我们需要读者拥有递归的知识基础 并且在学习之前,我先给出BFS的基本代码模型(基本大部分DFS题目都能按照此模型来写) void dfs(int step){ 判断边界 尝试每一种可能 for(i=1;i<=n;i++){ 继续下一步 dfs(step+1) } 返回 } 下面开始我们的学习 导入 首先介绍一下DFS 所谓的DFS在我看来就是一条路走到黑,直到无路可走的情况下,才会选择回头,然后重新选择一条路(官方说法即“优先考虑深度”) 引导原创 2022-02-20 20:37:28 · 1227 阅读 · 0 评论 -
图解 Floyd算法(多源最短路径)
如图,小明准备去一些城市旅游,其中有些城市之间有公路,有些则没有,小明为了节省路费,请你帮他计算任意两个城市之间的最短路径 for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { e[i][j] = min(e[i][j], e[i][1] + e[1][j]); } } for (int i = 1; i <= n; i++)//经过1号顶点 { for (in...原创 2022-05-14 16:14:24 · 221 阅读 · 0 评论 -
图解Dijkstra算法(单源最短路径)
注意这里这段话的理解,我们选择了距离源点最近的点之后,必然不可能再找到比它离源点还近的点了,例如我们找到距离源点最近的点距离是1,那么我们要想通过“中间点”找到比它还小的距离是不可能的,因为单凭这个1就是最小的了,何况我们还要加上另外一段距离 #include<algorithm> #include<iostream> using namespace std; int main() { int e[10][10], dis[10], book[10...原创 2022-05-15 19:04:54 · 207 阅读 · 0 评论