寫在前面:科班出身,應屆考研黨,願21考研成功上岸,沖沖衝!
目錄
一、BFS算法的侷限性
帶權路徑長度——當圖是帶權圖時,一條路徑上所有邊的權值之和,稱爲該路徑的帶權路徑長度
BFS算法求單源最短路徑只適用於無權圖,或所有邊的權值都相同的圖
二、Dijkstra算法
初始:從V0開始,初始化三個數組信息如下
第1輪:循環遍歷所有結點,找到還沒確定最短路徑,且dist最小的頂點Vi,零final[j] = true
檢查所有鄰接自Vi的頂點,若其final值爲false,則更新dist和path信息
第2輪:循環遍歷所有結點,找到還沒確定最短路徑,且dist最小的頂點Vi,零final[j] = true
第3輪:循環遍歷所有結點,找到還沒確定最短路徑,且dist最小的頂點Vi,零final[j] = true
第4輪:循環遍歷所有結點,找到還沒確定最短路徑,且dist最小的頂點Vi,零final[j] = true
三、如何使用數組信息
V0到V2的最短(帶權)路徑長度爲:dist[2] = 9
通過path[]可知,V0到V2的最短(帶權)路徑:V2<- -- V1<-----V4<------V0
時間複雜度:O(n^2)即O(|V|^2)
四、用於負權值帶權圖
結論:Dijkstra算法不適用於有負權值的帶權圖