理解最短路徑 迪傑斯特拉(dijkstra)演算法

2021-08-02 14:40:16 字數 943 閱讀 5040

/*

大家可以先看大神的理論知識,將dijkstra思想搞懂,然後在

來看我舉得簡單的例子

*/

輸入:

v e

e行 ,每行表示倆個節點相連的邊的長度

輸出:

節點1的單源最短路徑

input:

6 9

1 2 7

1 3 9

1 6 14

2 3 10

2 4 15

3 4 11

3 6 2

4 5 6

5 6 9

output:

0 7 9 20 20 11

大神裡面的那個圖的例子

#include

#include

using

namespace

std;

const

int maxn = 100;

const

int inf = 10000;

int w[maxn][maxn]; //存圖,相連節點之間的邊 ,無邊初始化為最大值

int vis[maxn]; //標記節點是否使用過

int dis[maxn]; //存起點到終點的最短路徑陣列

void dijkstra(int n)

}vis[k] = 1; //將節點k加入x

//更新y區域

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

}

}}int main()

dijkstra(v);

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

cout

<< dis[i] << " ";

}return

0;}

迪傑斯特拉最短路徑

問題描述 在帶權有向圖g中,給定乙個源點v,求從v到g中的其餘各頂點的最短路徑問題,叫做單源點的最短路徑問題。在常用的單源點最短路徑演算法中,迪傑斯特拉演算法是最為常用的一種,是一種按照路徑長度遞增的次序產生最短路徑的演算法。在本題中,讀入乙個有向圖的帶權鄰接矩陣 即陣列表示 建立有向圖並按照以上描...

最短路 (迪傑斯特拉)

a 最短路 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2544 description 在...

最短路徑 迪傑斯特拉演算法

例如,要求下圖v0到v8的最短路徑 所以我們可以找到這樣的一條最短路徑 下面是他的鄰接矩陣 偽 如下 define maxvex 9 define infinity 65535 typedef int patharc maxvex 用於儲存最短路徑下標的陣列 typedef int shortpat...