Floyd算法是用于解决多源最短路径问题的方法,可以处理带有负权边的有向图或者无向图,其实质是动态规划。
原理:

代码:
void Floyd(){
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
D[i][j] = G[i][j];
path[i][j] = -1;
}
}
for(int k = 0; k < N; k++){
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
//Floyd
if(D[i][k] + D[k][j] < D[i][j]){
D[i][j] = D[i][k] + D[k][j];
path[i][j] = k;
}
}
}
}
}
本文深入讲解了Floyd算法,一种解决多源最短路径问题的有效方法。它适用于含有负权边的有向图和无向图,通过动态规划实现全局最优路径的计算。
3455

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



