floyd算法

来源:互联网 发布:软件用户手册例子 编辑:程序博客网 时间:2024/06/06 03:53
//刚刚又看了一个算法叫floyd算法 就是在平常的情况下我们想得到任意两个点之间的的最小路程的值
//一般情况下可能调用n次dijkstra算法 或者 是FORD算法  其实使用一次flord算法就可以了 但是注意初始化的问题 还有把代码背下来就可以了 
//这个记得真的有点麻烦
 for(int k=0;k<n;k++)
    for(int i=0;i<n;i++)
       for(int j=0;j<n;j++)
       d[i][j]=min(d[i][j],d[i][k]+d[k][j])
//其实这里比较注意的是初始话的问提 如果初始化的值比较小的话就有可能会把这条边视为最小路径的一部分 
//如果初始过于大的话就会使两数相加超出了范围       
//如果能保证两数相加不超过INF的话可以加一个判断句