Dijkstra算法与Prim算法的异同

 我来答
户如乐9318
2022-06-02 · TA获得超过6676个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:141万
展开全部

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

Prim算法用于构建 最小生成树 ——即树中所有边的权值之和最小。例如,构建电路板,使所有边的和花费最少。只能用于 无向图

//无向图G, 权值w, 起始点r
MST(G, w, r) {
for each u in G,V {
//此处做初始化操作,给每个节点u赋键值+∞,设置空为父节点
u.key = +∞
u.parent = NULL
}
//选初始点r,Q是无向图G中所有点V的权值优先队列,key可看作u到下一个节点v的距离
r.key = 0
Q = G,V
while(Q != ∅) {
//取出Q中权值最小值的点u
u = extractMin(Q)
//取点u连接的所有节点(即无向图G的邻接表中的第u个链表)
for each v ∈ G.Adj[u] {
if (v ∈ Q) and (w(u, v) < key) {
//若该节点仍在Q中且权值w(w,v)小于其原始权值,则进行松弛操作!
v.parent = u
v.key = w(u, v)
}
}
}
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
富港检测东莞有限公司
2024-12-25 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者... 点击进入详情页
本回答由富港检测东莞有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式