首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
ducktobey
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
42-Floyd算法
结合前面的Dijkstra算法或者Bellman-Ford算法,其实也可以计算出任意两个顶点之间的最短路径。例如下图 如果要计算出任意两个顶点之间的最短路径,其实可以遍历所有的顶点,对每一个顶点做一次Dijkstra操作,其实也可以计算出任意两个顶点之间的最短路径。 是的,上面…
41-Bellman-Ford算法
因为关于负权环的问题,在前面介绍最短路径时提到过,如果图中有负权环,是不支持有最短路径的。 该图现在一共有7条边,上面算法原理描述的意思就是说,对上面7条边,都进行V - 1次松弛操作就可以得到所以可能的最短路径。 答案是不行的,因为V - 1次松弛操作是这样来的,在运气好的时…
40-Dijkstra算法
Dijkstra属于单源最短路径算法,用于计算一个顶点到其他所有顶点的最短路径。 使用前提:不能有负权边。也就是说,如果图中有负权边,不能使用Dijkstra算法来计算最短路径,但是可以使用Bellman-Ford来计算 时间复杂度:可优化至O(ElogV),E是边的数量,V是…
39-最短路径(Shortest Path)
无权图同样有最短路径的概念,在这种情况下, 由于每条边的权值均相等,所以两个顶点之间,经过的边数量最少,就是两个顶点的最短路径。 无权有向图依然适用这种方法。 当有负权边,但是没有负权环时,依然存在最短路径。例如下面的有向图 在有向图中,顶点D,E,F构成了环,并且成环中有边的…
38-Kruskal算法
以Prim算法一样,Kruskal算法也可以用来计算图的最小生成树。 根据Kruskal算法的逻辑,首先会选择权值最小的一条边。所以HG这条边一定会成为最小生成树的一条边 选出一条边以后,再从剩下的边中选择一条权值最小的边。现在剩下的边中,最小权值是2,并且有两条,这种情况,选…
37-Prim算法
在研究Prim算法之前,首先要了解一个概念。切分定理 所以上图中的边BC,BE,DE就是横切边,因为这些边,一部分在左边的子图中,一部分在右边的子图中。 再定义一个集合S,用来存放切分的起点和切完后被切出来的顶点,所以集合S中的顶点都是属于V的,然后重复找到切分的最小横切边,然…
36-最小生成树(Minimum Spanning Tree)
A,B,C,D,E均可到达任意一个节点。所以如上连通图的极小连通子图,可以如下所示 极小连通子图也叫做生成树,支撑树。因为可以发现,上面的连通图,只依靠4条边,就将整个图支撑起来了。并且可以发现,一个连通图的支撑树,可能有能多棵,所以上图连通图的支撑树,还有如下一些 上面这些树…
35-拓扑排序(Topological Sort)
在研究拓扑排序之前,先来了解一个概念。 什么叫AOV网呢?在生活中经常有这种情况,一项大的工程,常常被分为多个小的子工程,然后小的子工程中之间可能存在一定的先后顺序,即某些子工程必须在其他一些子工程完成后才能开始。 图中的每一个顶点就代表一个子工程(Activity),有向边代…
34-深度优先搜索(Depth First Search)
回退一个顶点到1,发现顶点1还有其他未遍历的路径,则选择一条未遍历的路径,依次遍历到最底部,直到不能再往下继续搜索位置。 这样一直重复,直到把所有的路径,所有的节点都搜索一遍位置。 假设现在以顶点a为起点,进行深度优先搜索。 a→e→c→b,这个时候发现该路径的所有节点都访问完…
33-广度优先搜索(Breadth First Search)
要对图中所有的顶点进行遍历,其实与二叉树的层序遍历很相似,都是一层一层的进行遍历的。假设现在从顶点A开始遍历,A在第一层,A能直接访问的在第二层,那么第二层能直接访问到的在第三层,第三层能直接访问到的在第四层。所以最终每一层的顶点元素如下。不过需要注意,由于是无向图,所以会出现…
下一页
个人成就
文章被点赞
22
文章被阅读
32,304
掘力值
995
关注了
0
关注者
10
收藏集
1
关注标签
2
加入于
2019-08-23