
图论
文章平均质量分 60
ZZZWWWFFF_
这个作者很懒,什么都没留下…
展开
-
【算法与数据结构】—— 并查集
目录1. 概论2. 并查集的现实意义3. find( )函数的定义与实现4. join( )函数的定义与实现5. 路径压缩算法之一(优化find( )函数)实战检验首先在开始我们学习并查集之前呢,我想先请读者看一下这篇文章点击进入并查集详解 ——图文解说,简单易懂,理解一下并查集的基础理论知识,也算是铺垫吧1. 概论定义:并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是..转载 2022-03-13 23:00:27 · 344 阅读 · 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 · 664 阅读 · 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 · 1320 阅读 · 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 · 251 阅读 · 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 · 248 阅读 · 0 评论