Floyd 最短路径【学习算法】
- 前言
- 版权
- 推荐
- Floyd 最短路径
- 最后
前言
2023-9-26 18:09:58
仅供学习交流使用
推荐
无
Floyd 最短路径
public class FloydAlgorithm {
private static final int INF = 99999;
public void floyd(int[][] graph, int n) {
int[][] dist = new int[n][n];
int i, j, k;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
dist[i][j] = graph[i][j];
}
}
for (k = 0; k < n; k++) {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (dist[i][k] + dist[k][j] < dist[i][j]) {
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
}
// 输出最短路径矩阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (dist[i][j] == INF) {
System.out.print("INF ");
} else {
System.out.print(dist[i][j] + " ");
}
}
System.out.println();
}
}
public static void main(String[] args) {
//有向图
int[][] graph = {
{0, 5, INF, 10},
{INF, 0, 3, INF},
{INF, INF, 0, 1},
{INF, INF, INF, 0}
};
int n = 4;
FloydAlgorithm algorithm = new FloydAlgorithm();
algorithm.floyd(graph, n);
}
}
最后
2023-9-26 18:12:15
我们都有光明的未来
祝大家考研上岸
祝大家工作顺利
祝大家得偿所愿
祝大家如愿以偿
点赞收藏关注哦