本文共 433 字,大约阅读时间需要 1 分钟。
这个算法结构很是简单,但是理解还是有一定的困难,一开始做的时候想不明白,跟着算法自己动手画画就知道这个算法具体是怎么回事了。
时间复杂度是O(N*3)
算法有点动态规划的意思,有两个数组,一个(dis[])是记录俩顶点之间的最短路径的长度的,一个[path]数组是记录俩结点的中间结点的。在初始化这个数组的默认为 顶点的下标。。
最重要的就是下面的几步
上面的代码就是这个算法的精华部分。
sta:开始的顶点,end:结束的顶点,temp:是sta和end上的中间结点
两者相比较,要是有更短的路径就跟新俩结点的距离。
以每一个结点为中间点,更新数组,也就是所有顶点的距离。
话不多说。上程序。。。。
OK
就这个多,之前的都是铺垫,注意看重点的部分,floyd算法部分
转载地址:http://renea.baihongyu.com/