dijkstra算法為什么不能處理帶有負邊權的圖


  1 2 3
1 0 8 9
2 10 0 10
3 10 -2 0

 

 

 

 

 

先看樣例再解釋,看鄰接矩陣會發現, 如果用dijkstra算1-2的最短路因為貪心思想所以得到的結果是8,但明顯可以看到1-3-2最短,結果為7;這是為什么呢?

因為dijkstra用了貪心的思想,每次選取的是當前最短的邊進行松弛,當邊都是正權時,松弛后邊權一定比當前最短邊大,所以滿足貪心的條件,有了負邊后不滿足貪心的條件所以不能用dijkstra計算帶有負邊的單源最短路


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM