c++代码
用d[i][j]表示节点i与j之间的距离。
void Floyd() {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(i == j) d[i][j] = 0;
else d[i][j] = INF;//注意INF的大小,防止下面加法时溢出
}
}
for(int k = 0; k < n; k++) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
}
}
}
这段代码展示了Floyd-Warshall算法的实现,用于计算图中所有节点之间的最短路径。初始化矩阵d,通过三层循环逐步更新最短路径信息,最后得到每个节点对之间的最短距离。
1万+

被折叠的 条评论
为什么被折叠?



