数据结构——最短路径算法之floyd算法

数据结构——最短路径算法之floyd算法

(一) Flody算法

【前言】:前面的Dijkstra算法用来解决单源最短路径的问题,即:从指定点到图上其他各点的最短路径。那么,如果我们要求图中任意两个结点之间的最短路径,如何用算法来实现呢?如果用Dijkstra来实现,就需要每次改变源点,再使用多个dis数组来记录,这样,问题就会变得很复杂。那么,有没有一种简单的算法来求图中任意两个结点之间的最短路径呢?当然有!那就是 Flody算法。

利用类似三角形定理:三角形的任意两边之和大于或等于第三边;

1.1 初始化

用邻接矩阵来存图,先进行初始化,自己到自己的距离初始化为0,到另外的顶点的距离初始化为无穷大。并将标记数组都置为0,表示所有顶点都未访问;

void init(){
   
    
    
	for(int i

猜你喜欢

转载自blog.csdn.net/qq_50675813/article/details/121055441