比较Dijstra和Prim

本文对比分析了Dijkstra和Prim两种图论算法。Dijkstra算法用于求解最短路径问题,而Prim算法则用于构建最小生成树。它们在应用场景和实现步骤上有显著差异,Dijkstra通过不断选择最近顶点更新路径,Prim则逐步添加最小边到生成树。详细步骤和示例有助于理解两者区别。
摘要由CSDN通过智能技术生成

Dijstra 和 Prim 算法比较

2018/5/22

引言:Dijstra和Prim算法是图论中两种基础的优化算法。只要与图相关的问题,都有可能会用这两种算法来解决问题。信息专业的人一定是学过这两种算法的,不过不知道别人有没有这种感觉,我常常会分不清这两种算法,总觉得这两种算法非常的相似,甚至有时候有的人会把这两种算法混淆着用。为了彻底摆脱这一困惑,决定写篇文章,来区分Dijstra和Prim。

应用场景不同:

Dijstra 和 Prim都是优化算法,但是他们的应用场景不一样。Dijstra是最短路径算法,用来解决在一个图上寻找一个起点到一个终点的最短路径这样的问题;Prim是最小生成树算法,即对于一个图,寻找一个能够包含所有顶点且边的权值和最小的树。

算法步骤不同:

因为解决的问题不同,这两种算法的具体实现方法也就存在差别。

\textcolordarkblueDijstra \textcolor d a r k b l u e D i j s t r a

  • 基本思想:最短路径的求解过程中,图中的顶点分属两个集合:指定出发点的顶点为一个集合V,其余顶点为一个集合W。从W中选择一个离V中顶点最近的一个顶点加入到V中,求出了长度最短的一条最短路径,并把刚选择加入最短路径的顶点作为中间点,对其它顶点到源点的路径长度进行修改,求出长度次短的一条最短路径,依次类推,直到从顶点v到其它各顶点的最短路径全部求出为止。

  • 实现步骤:

    ​ (1)集合 S S T = V S S S 中存放已找到最短路径的顶点, T 存放当前还未找到最短路径的顶点。初态, S S 中只包含源点 v 0

    ​ (2)不断从

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值