演算法實踐2 1 Floyd

2022-07-05 16:30:13 字數 860 閱讀 6932

用floyd演算法求解下圖各個頂點的最短距離。寫出floyd演算法的偽**和給出距離矩陣(頂點之間的最短距離矩陣),按實驗報告模板編寫演算法。

點\(u\)到點\(v\)有兩種方案可以走,一種是點\(u\)直接到點\(v\),一種是通過中間點\(k\),點\(u\)先到點\(k\),再從點\(k\)走到點\(v\)。然後我們列舉中間點,再列舉起點和終點,進行更新。注意中間點要放在第一維,這樣子只能達到通過乙個中間點的效果,放在外面可以用通過中間點之後的狀態來繼續更新別的點之間的距離。

void floyd() }}

}

套了三個遍歷點的\(for\),時間複雜度為\(o(n^3)\)

實驗2-1 floyd

#include using namespace std;

const int inf = 0x3f3f3f3f;

const int n = 1e2 + 7;

int dis[n][n];

int n, m, u, v, w;

void floyd() }}

}int main()

floyd();

puts("");

for (int i = 1; i <= n; ++i)

}return 0;}/*

4 81 2 2

1 3 6

1 4 4

2 3 3

3 1 7

3 4 1

4 1 5

4 3 12

*/

實驗2 1 多源最短路演算法Floyd

如果從圖中某一頂點到達另一頂點的路徑可能不止一條,如何找到一條路徑使得沿此路徑上各邊的權值總和 稱為路徑長度 達到最小。可以將適用最短路的演算法分為單源最短路和多源最短路。多源最短路演算法floyd 以下圖為例,用floyd演算法求解下圖各個頂點的最短距離。從任意節點 i 到任意節點 j 的最短路徑...

演算法分析與實踐 作業2 Floyd演算法

用floyd演算法求解下圖各個頂點的最短距離。最大容量 define vertextype int 頂點型別 define inf 65535 象徵無窮大 typedef struct graph 鄰接矩陣 int p num num 前驅表 int vexnum,arcnum vernum為頂點個...

Floyd演算法思想

本來 量如此小的演算法不用出模板了,但是的確思想還是很好的。1.定義概覽 floyd warshall演算法 floyd warshall algorithm 是解決任意兩點間的最短路徑的一種演算法,可以正確處理有向圖或負權的最短路徑問題,同時也被用於計算有向圖的傳遞閉包。floyd warshal...