圖 Floyd多源最短路徑
阿新 • • 發佈:2018-12-16
多源最短路徑 void floyd() { for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { d[i][j] = g[i][j]; //g[i][j]是圖的鄰接矩陣 path[i][j] = -1; } } for(k = 0; k < n; k++) { for(j = 0; j < n; j++) { for(i = 0; i < n; i++) { if(d[i][k] + d[k][j] < d[i][j]) { d[i][j] = d[i][k] + d[k][j]; path[i][j] = k; if(i == j && d[i][j] < 0) //發現負值圈 { return false; } } } } } }