1. 程式人生 > >最小生成樹(Dijkstra)演算法和最短路(Prim)演算法的異同

最小生成樹(Dijkstra)演算法和最短路(Prim)演算法的異同

Prim演算法用於構建最小生成樹——即樹中所有路徑之和最小,但不能保證任意兩點之間是最短路徑。例如,構建電路板,使所有邊的和花費最少。只能用於無向圖Dijkstra演算法用於構建(MST)——即樹中指定點到任何其他點的距離都是最短的。例如,構建地圖應用時查詢自己的座標離北京,上海,鄭州等的最短距離。可以用於 向圖  ,但是不能存在負權值(Bellman-Ford可以處理負權值)。注意 : 差別只在於最後迴圈體內的鬆弛操作

簡單總結就是,Dijkstra的鬆弛操作加上了到起點的距離,而Prim只有相鄰節點的權值。

最小生成樹:包含dijkstra,spfa,Floyd。

最短路:kruskal,prim。