對於不含負權邊的圖求單源最短路徑,Dijkstra算法是最高效的。但是在含負權邊的圖中,Dijkstra很可能得不到正確的結果,因為Dijkstra每次選的是當前能連到的邊中權值最小的,在正權圖中這種貪心是對的,但是在負權圖中就不是這樣了。比如1——>2權值為5,1——>3權值為6,3——>2權值為-2,求1到2的最短路徑時,Dijkstra就會選擇權為5的1——>2,但實際上1——>3——>2才是最優的結果。
另外如果包含負環,則意味着最短路徑不存在。因為只要在負權回路上不斷兜圈子,所得的最短路長度可以任意小。