floyd算法c++实现
时间: 2023-09-19 16:09:19 浏览: 104
以下是C++实现的Floyd算法:
```cpp
const int INF = 0x3f3f3f3f; // 定义正无穷
// 图的邻接矩阵表示法,dist[i][j]表示i到j的最短距离
// n为图的节点数,可以根据实际情况修改
int dist[N][N], n;
void floyd() {
for (int k = 1; k <= n; ++k) {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
}
```
其中,`dist[i][j]`表示节点i到节点j的最短距离,初始化时应该将边权为0的位置设为0,边权为无穷的位置设为正无穷。
时间复杂度为$O(n^3)$。
阅读全文