- 5
- 0
- 约1.04千字
- 约 9页
- 2018-04-24 发布于江苏
- 举报
图任意两点最短距离
图的任意两点间的距离 问题的描述: 已知图G=(V,E),V={v1,v2,…,vn}及距离矩阵 D=(d ij ) n*n 求图G的任意两点间的最短距离。 分析: 图的问题有25个,这个问题的算法是Floyd提出的。 设矩阵 ,定义矩阵运算如下: 其中 令 显然 表示从 出发经过某一中间点到达 点的最短距离。同样 表示从 经过两个中间点到 的最短距离。 定义: 令 则 表示从 vi 点到 vj 点的最短距离。 由于D(k) 有 n2个元素,每个元素要作n-2 次加法与 n-3次比较,依以上办法可知求 的时间复杂性为 。 动态规划算法 设 为从 vi出发中途经过以(v1,v2,…,vk) 为中间点到vj 的最短距离。则有 其中 并且 即为 i,j 之间的最短距离。 具体算法 void SD(int d[][],int n) { int a[n][n],I,j,k; for(i=1;i=n;i++) for(j=1;j=n;j++)
原创力文档

文档评论(0)