dijkstra算法流程圖_[算法導論讀書筆記]Dijkstra算法
發(fā)布時間:2016-11-23 00:13
本文關鍵詞:dijkstra算法,由筆耕文化傳播整理發(fā)布。
算法思想:
Dijkstra(迪杰斯特拉)算法是典型的最短路徑路由算法,用于計算一個節(jié)點到其他所有節(jié)點的最短路徑。主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。dijkstra算法能得出最短路徑的最優(yōu)解,但由于它遍歷計算的節(jié)點很多,所以效率低。
dijkstra算法是很有代表性的最短路算法,在很多專業(yè)課程中都作為基本內容有詳細的介紹,如數據結構,圖論,運籌學等等。
其基本思想是,設置頂點集合S并不斷地作貪心選擇來擴充這個集合。一個頂點屬于集合S當且僅當從源到該頂點的最短路徑長度已知。
初始時,S中僅含有源。設u是G的某一個頂點,,把從源到u且中間只經過S中頂點的路稱為從源到u的特殊路徑,并用數組dist記錄當前每個頂點所對應的最短特殊路徑長度。dijkstra算法每次從V-S中取出具有最短特殊路長度的頂點u,將u添加到S中,同時對數組dist作必要的修改。一旦S包含了所有V中頂點,dist就記錄了從源到所有其它頂點之間的最短路徑長度。
例如,對下圖中的有向圖,應用dijkstra算法計算從源頂點1到其它頂點間最短路徑的過程列在下表中。
偽代碼:
代碼示例:
#include
本文關鍵詞:dijkstra算法,由筆耕文化傳播整理發(fā)布。
本文編號:186982
本文鏈接:http://sikaile.net/wenshubaike/shangbiaozhuanli/186982.html
最近更新
教材專著