![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路径
辣是真滴牛啤
这个作者很懒,什么都没留下…
展开
-
三、Floyd-Warshall算法 --- 多源最短路径
Floyd-Warshall算法可用于:数据较少、任意两点之间的最短路径、负权边 题目描述 任意两点之间的最短路径 Input 4 8 1 2 2 1 3 6 1 4 4 2 3 3 3 1 7 3 4 1 4 1 5 4 3 12 第一行:顶点数、边数 a b c:从a点到b点的权重为c Floyd-Warshall算法思路:如果想让任意两点之间的路程变短,只能引入第三个点(顶点k)或者更多的...原创 2019-02-28 15:32:48 · 247 阅读 · 0 评论 -
四、Dijkstra算法 --- 单源最短路径
Dijkstra算法可用于:指定一点到其余各个顶点的最短路径、不能处理含有负权边 题目描述 求图中1号顶点到2、3、4、5、6号顶点的最短路径 Input 6 9 1 2 1 1 3 12 2 3 9 2 4 3 3 5 5 4 3 4 4 5 13 4 6 15 5 6 4 第一行:顶点数、边数 a b c:从a点到b点的权重为c Dijkstra算法思路:类似于广搜一样,但不同的是需要使用优...原创 2019-02-28 16:44:23 · 301 阅读 · 0 评论 -
五、Bellman-Ford算法 --- 解决负权边
Bellman-Ford算法可用于:稀疏图和边关系密切、指定一点到其余各个顶点的最短路径、可以处理负权边、可以判断负权回路 题目描述 求图中1号顶点到2、3、4、5、6号顶点的最短路径 Input 5 5 2 3 2 1 2 -3 1 5 5 4 5 2 3 4 3 Bellman-Ford算法思路:对所有的边进行n-1次“松弛”操作 松弛:就是通过遍历一轮所有的边,更新存储某个指定顶点到各个顶...原创 2019-03-01 16:14:58 · 349 阅读 · 0 评论 -
六、Bellman-Ford算法的队列优化
由于Bellman-Ford算法在每实施一次松弛操作后,就会有一些顶点已经求得其最短路,此后这些顶点的最短路的估计值就一直保持不变,不再受到后续松弛操作的影响,但是每次还要判断是否需要松弛,浪费了时间 优化方法:每次仅对最短路估计值发生改变了的顶点的所有出边进行松弛操作 题目描述 求图中1号顶点到2、3、4、5号顶点的最短路径 Input 5 7 1 2 2 1 5 10 2 3 3 2 5 7...原创 2019-03-01 17:16:59 · 443 阅读 · 0 评论 -
Kruskal算法 --- 图的最小生成树(并查集)
Kruskal算法:使用n-1条边连接n个顶点,根据顶点之间权值的不同从而生成了最小生成树 题目描述 要求将这些顶点都能够连接,并且权值总和最小 Input 6 9 2 4 11 3 5 13 4 6 3 5 6 4 2 3 6 4 5 7 1 2 1 3 4 9 1 3 2 Kruskal算法思路:按照权值对路径进行排序,然后从最小的开始选,依次选择每一条边,直到选择了n-1条边让整个图连通为...原创 2019-03-10 20:46:58 · 349 阅读 · 0 评论