單源最短路經的迪傑斯特拉演算法(Dijkstra)

2021-08-20 12:59:40 字數 879 閱讀 1610

/*

theme:單源最短路經的迪傑斯特拉演算法(dijkstra)

author:liu

date:2018/6/6

*//*

解題步驟:

1.將源點加入頂點集v,邊集e為空

2.選擇與頂點v中相連出去的圖中最短的路徑,加入e集合,新的頂點加入v集合

3.重複步驟2,知道所有頂點都在集合v中

*/#includeusing namespace std;

#define maxnum 1000

class graph

;void graph::input()

for (int i = 0; i<_n; i++)

//初始化

for (int i = 0; i<_n; i++) }

//輸入距離

int a, b;

for (int i = 0; i<_e; i++)

cin >> _sor;

}void graph::init()

_min_dis[_sor] = 0;

_flag[_sor] = 1;

_path[_sor] = _sor;

}void graph::dijkstra()

if (_min_dis[j] < min_now)

}} if (next_pick == -1)//沒有源點可以達到的點了

break;

pick = next_pick;

_flag[pick] = 1; }}

void graph::output()

cout << j << '\n';

} }}int main()

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

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

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

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

最短路 (迪傑斯特拉)

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