读书人

关于floyd算法的有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

关于floyd算法的问题
floyd求得是所有点之间的最短路径代价。
但是如何改进代码使它也能够保存所有点之间的最小代价?
代码如下:
void Floyd(int G[][],int n)

{

  int i,j,k;

  for(i=0;i <n;i++)

    for(j=0;j <n;j++)

      G[i][j]=MAX;



  for(i=0;i <n;i++)

    for(j=0;j <n;j++)

      for(k=0;k <n;k++)

        if(G[j][k] > G[j][i] + G[i][k])

          G[j][k]=G[j][i] + G[i][k];

  return ;

}


[解决办法]
运行完毕后G[i][j]就是i到j的最小代价了!!!
[解决办法]
一直用的是迪杰斯特拉算法。。。
[解决办法]
我在关注中~~~~~~
我想知道的是~~~如何求出最短路径~~~如何记录最短路径经过的点。

读书人网 >C++

热点推荐