Dijkstra 演算法思想描述
本博文純屬本人學習記錄之用,不喜勿噴!
單源最短路徑
Dijkstra演算法:
(圖G)
設S是被探查的結點的集合,U是G中除S外的結點集合,初始時,S={s},d(s) =0,若s到U中的結點u有邊,則d(u)=邊上的權值或長度(具體自己定義),如果沒有邊,則d(u)=∞;
a.從U中選擇一個到s距離最小的頂點v,將v加入到S中,此時的距離d(v)就是s到v的最短路徑
b.以v為中間結點,重新考慮s到U中的各個結點的距離;如果通過v到U中的結點u的距離比原來不通過v的更小,則更新這個距離值,否則不更新
c.重複a、b直到所有結點都被包含到S中