最短路徑演算法之二 Dijkstra總結

2021-10-06 15:54:40 字數 1016 閱讀 7313

參考dijkstra演算法**

//引數 k 為開始源點 

void

dijkstra

(int k)}if

(temp ==-1

)return

; vis[temp]=1

;//根據找到的最短路徑更新 dis

for(

int j =

0; j < n; j++)}

}}}

//dijkstra演算法模板 

#include

#include

#include

#define inf 0x3f3f3f

//代表無限大

using

namespace std;

int n,m;

int k;

//查詢的源點

int map[

100]

[100];

//圖int dis[

100]

;//存放從 i 到其他點的最短距離

int vis[

100]

;//存放已經是最短距離的點

void

dijkstra

(int k)}if

(temp ==-1

)return

; vis[temp]=1

;//根據找到的最短路徑更新 dis

for(

int j =

0; j < n; j++)}

}}}int

main

(int argc,

char

** ar**)

cin >> k;

dijkstra

(k);

//輸出

for(

int i =

1; i <= n; i++

)return0;

}

最短路徑演算法之二 Dijkstra演算法

dijkstra演算法 dijkstra演算法主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。注意該演算法要求圖中不存在負權邊。首先我們來定義乙個二維陣列edge maxn maxn 來儲存圖的資訊。這個圖的edge 陣列初始化以後為 我們還需要用乙個一維陣列dis 來儲存1 號頂...

HDU3790 最短路徑問題 Dijkstra

problem description 給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。input 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長...

最短路徑演算法 最短路

在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10000 n...