最小生成树(Dijkstra)算法和最短路(Prim)算法的异同

Prim算法用于构建最小生成树——即树中所有路径之和最小,但不能保证任意两点之间是最短路径。例如,构建电路板,使所有边的和花费最少。只能用于无向图

Dijkstra算法用于构建 单源点的最短路径树 (MST)——即树中指定点到任何其他点的距离都是最短的。例如,构建地图应用时查找自己的坐标离北京,上海,郑州等的最短距离。可以用于  向图  ,但是 不能存在负权值 (Bellman-Ford可以处理负权值)。

注意 : 差别只在于最后循环体内的松弛操作

简单总结就是,Dijkstra的松弛操作加上了到起点的距离,而Prim只有相邻节点的权值。

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

最短路:kruskal,prim。

猜你喜欢

转载自blog.csdn.net/sugarbliss/article/details/79984084