算法過程:1,從任意壹條單邊路徑開始。所有兩點之間的距離是邊的權,或者無窮大,如果兩點之間沒有邊相連。
2,對於每壹對頂點 u 和 v,看看是否存在壹個頂點 w 使得從 u 到 w 再到 v 比己知的路徑更短。如果是更新它。
Dijkstra(迪傑斯特拉)算法是典型的單源最短路徑算法,用於計算壹個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。
算法步驟如下:
1. 初使時令 S={V0},T={其余頂點},T中頂點對應的距離值
若存在<V0,Vi>,d(V0,Vi)為<V0,Vi>弧上的權值
若不存在<V0,Vi>,d(V0,Vi)為∝
2. 從T中選取壹個其距離值為最小的頂點W且不在S中,加入S
3. 對T中頂點的距離值進行修改:若加進W作中間頂點,從V0到Vi的
距離值比不加W的路徑要短,則修改此距離值
重復上述步驟2、3,直到S中包含所有頂點,即S=T為止