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

本文介绍了Prim算法和Dijkstra算法的区别。Prim算法用于构建最小生成树,适用于无向图,目的是使所有边的和最小;Dijkstra算法则用于构建单源点的最短路径树,适用于有向图,确保从指定点到任何其他点的距离最短。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

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

 

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

 

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

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

最短路:kruskal,prim。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值