#pragma once
#include <stdio.h>
#define n 7
void path_main() {
int max = 99999;
int graph[n][n] = {
0 ,4 ,6 ,6 ,max,max,max,
max,0 ,1 ,max,7 ,max,max,
max,max,0 ,max,6 ,4 ,max,
max,max,2 ,0 ,max,5 ,max,
max,max,max,max,0 ,max,6 ,
max,max,max,max,1 ,0 ,8 ,
max,max,max,max,max,max,0 ,
};
int dist[n] = { 0,max,max,max,max,max,max };
for (int i = 1; i < n; i++) {
for (int j = 0; j <i; j++) {
if(dist[j]+graph[j][i]< dist[i])
dist[i] = dist[j] + graph[j][i];
}
for (int j = 0; j < i; j++) {
if (dist[i] + graph[i][j] < dist[j])
dist[j] = dist[i] + graph[i][j];
}
}
for (int i = 0; i < n; i++) {
printf("%d ", dist[i]);
}
}
c语言-最短路径算法
最新推荐文章于 2023-02-23 22:57:46 发布
该代码实现了一个Dijkstra最短路径算法,用于找到二维矩阵中两点间的最短距离。初始化一个最大值数组并逐步更新距离,通过两个嵌套循环优化路径。最终打印出每个点到起点的最短距离。
1万+

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



