void floyd() {
for (int k = 0; k < n; k++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
}
为何三重循环以后就更新了*所有*节点对之间的最短路径长度?
意思是说,前面执行阶段得到了部分节点对之间的最短路径长度,会影响后面阶段计算的最短路径,
那么,后面阶段计算的最短路径,如果再运行一次该函数,会不会使部分节点间计算出来的最短路径更短?
--
FROM 218.108.223.*