动态规划中Warshall 和 Floyd

来源:互联网 发布:小米移植网络助手 编辑:程序博客网 时间:2024/05/17 04:19

1.Warshall 计算传递闭包

void Warshall()

{
int k,i,j;
for(k=1;k<=4;k++)
{
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
if(result[k-1][i][j]==1 ||(result[k-1][i][k]==1 && result[k-1][k][j]==1))
result[k][i][j]=1;
}
}
}

}




2.Floyd计算最短路径

void Floyd()
{
int k,i,j;
for(k=1;k<=4;k++)
{
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
data[i][j]=min(data[i][j],data[i][k]+data[k][j]);
}
}
}
}