這裡給出的是基於動態規劃方法,時間複雜度時o(v^4),可以通過「重複平方」計數使其複雜度降低位o(v^3*lgv).參考《演算法導論》25.1
view plaincopy to clipboardprint?
#include
using namespace std;
const int n = 5;
const int e = 9;
const int max=0xffff;
int g[n][n];
/* * 這裡l1代表「最多包含m-1條邊的最短路徑矩陣」
* l2作為返回值,代表最多包含m條邊的最短路徑矩陣。
* 其中l2(i,j) = min };其中0<=k<=n-1
*/ int ** extend_shortest_path(int **l1)
int ** l = slow_all_pairs_shortest_path();
for(i=0;i
演算法導論 第25章 每對頂點間的最短路徑
每對頂點間的最短路徑的演算法有三種,每一種都可以檢測圖是否存在weighg小於0的cycle。前兩種演算法用了動態規劃的方法,最後一種演算法對每個定點計算單源最短路徑。與求單源最短路徑的演算法不同,求每對頂點間的最短路徑的演算法採用網的矩陣表示法 除了最後一種演算法,最後一種演算法採用圖的鄰接表表示...
頂點間最短路徑求解
include define infinity 100 表示 define max vertex num 20 最大頂點個數 typedef enum graphkind 圖的種類 typedef struct 鄰接矩陣 adjmatrix max vertex num max vertex num...
資料結構例程 每對頂點之間的最短路徑
本文是 資料結構基礎系列 7 圖 中第14課時 每對頂點之間的最短路徑 的例程。floyd演算法實現 程式中graph.h是圖儲存結構的 演算法庫 中的標頭檔案,詳情請單擊鏈結 include include include graph.h define maxsize 100 void ppath...