單源最短路徑DJ斯特拉(C語言版)詳細注釋

2021-09-02 05:14:02 字數 678 閱讀 2351

**注釋十分詳細,很好理解的。

#includeint main()

//初始化dis陣列,例如dis[3]=e[1][3],1到3距離為dis[3].

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

dis[i]=e[1][i];

//開始分集合已知最短路徑的頂點集合p和未知頂點集合q,book[i]為0則是在集合q中。

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

book[i]=0;

book[1]=1;

//dj斯特拉演算法核心語句

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

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

printf("%d ",dis[i]);

getchar(); //使用getchar(),可以將程式暫停,看輸出的結果,也可以用system("pause");

getchar();

return 0;

}

**執行結果:

輸出的空格忘記加了。 0 1 8 4 13 17

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

dijkstra 演算法 中文名 迪傑斯特拉演算法 是由荷蘭計算機科學家 edsger wybe dijkstra 提出。該演算法常用於路由演算法或者作為其他圖演算法的乙個子模組。舉例來說,如果圖中的頂點表示城市,而邊上的權重表示城市間開車行經的距離,該演算法可以用來找到兩個城市之間的最短路徑。我們...

單源最短路徑問題(狄克斯特拉演算法)

挑戰程式設計競賽2上的一道例題 p250 include using namespace std static const int max 100 static const int infty 1 21 這裡表示int型別最大值 static const int white 0 表示三種狀態 sta...

Dijkstra(迪傑斯特拉) 單源最短路

在圖中,我們可以指定乙個點為起點,計算它到其餘各點的最短路徑。我們尋找乙個與它之間最近的點,以此為基礎不斷的更新它經過此點到其他點的最短路,並重複這個過程,直到所有的點都被尋找一遍。include include includeusing namespace std const int maxn 1...