今天看了弗洛伊德算法。
他的本质是动态规划。
就是图中两点之间如何求最短距离呢
假设有n个点
假如我们中间只能经过前一个点,那么就是这么写
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if ( e[i][j] > e[i][1]+e[1][j] )
e[i][j] = e[i][1]+e[1][j];
}
}
假如只能经过前两个点,那么就是这么写
//经过1号顶点
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if (e[