问题补充说明:floyd算法为什么要把枚举层放到最外面,我知道它其实是动态规划,但是状态转移的顺序不太理解。
这是由其算法本身所决定的,其每一步求出任意一自来优图应场微对顶点之间仅通过中间节聚伯都含点1,2,...,k的最短距离,当1,2,...,k扩展到所有顶点时,算法解出任意一对顶点间的最短距离,故顺序自然是:
for(k=1;k<n;++育少基兰k)
//枚举任意一对顶点
由其南办海起状态转移方程来看,这个配件她编齐垂修酒算法的顺序也很清晰,应该是职病修团孔讨难先计算较小的k时任意ij之间的最短距离:
di线望征市完先源烈短j(k)=wij如果k=0
min(dij(k-1),dik(k-1)+dkj(k-1))如果k>=1
其中i,j表示点对,k表示第1,2,...,k时的最短路径