首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

有关弗洛伊德算法的一个疑问,该如何解决

2012-02-29 
有关弗洛伊德算法的一个疑问C# codeFloyed(){const int n 100for (int k 0 k n k++)for (int i

有关弗洛伊德算法的一个疑问

C# code
Floyed(){    const int n = 100;    for (int k = 0; k < n; k++)    for (int i = 0; i < n; i++)    for (int j = 0; j < n; j++)         if (mat[i, j] > mat[i, k] + mat[k, j])            {                 mat[i, j] = mat[i, k] + mat[k, j];                 rec[i, j] = k;            }                }

想问一下,如上弗洛伊德算法中,最后的rec数组表示的是什么意思?

[解决办法]
mat记录权值,rec记录具体哪一个顶点构成了路径。
[解决办法]
从i到j的最短路径的i的下一个邻接点。
如果i--k--m--j这最短路径。
那么rec[i,j]=k

热点排行