有权图的单源最短路径

本文探讨有权图中单源最短路径的问题,指出与无权图的区别在于需要考虑边上的权值。通过举例说明,权图的最短路径不一定是经过顶点数最少的。此外,文章还提到了负值圈现象,即某些情况下最短路径可能形成循环。解决有权图单源最短路径问题的算法是Dijkstra算法,其核心是每次选择当前未收集顶点中距离源点最近的一个,并更新其邻接点的最短路径。最后,文章提及了Dijkstra算法的基本实现步骤。

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

和无权图不同,因为有权图的边上带权值,所以在计算最短路径时会出现和无权图不同的情况,无权图边的权值默认是1,有权图则不是,所以有权图的单源最短路径上,顶点的个数不一定是最少的。我们来看一个例子:

假设以V1为源点,V6为终点,那么V1到V6的单源最短路径是哪一条?是V1->V2->V5->V8->V6。和无权图不同,有权图在找最短路时要考虑路径边上权值的问题。乍一看V1到V6经过顶点数最少的是路径V1->V3->V6,但是边上权值之和等于5+6=11。而V1->V2->V5->V8->V6的权值之和等于1+3+2+2=8。所以从V1到V6的单源最短路径是V1->V2->V5->V8->V6。

因为有权图的边上带权值特点,所以会出现一种特别的情况,例如如果我们以V5为源点,V8为终点找最短路径的话。。。。那么这条最短路径就会在V5->V8->V7->V5。。。。上不断循环。

因为V5->V8->V7->V5一次循环后权值之和等于-1,两次循环后权值之和等于-2,所以随着每次走过一圈后,权值之和都会越来越小。这种路径有个名称叫“负值圈”。

求有权图的单源最短路径代码和无权图的算法有点相似,因为其实无权图可以看作是特殊的有权图,无权图可看作所有的边的权值都等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值