迪杰斯特拉算法解析

       迪杰斯特拉算法是解决单源最短路径(从图中的某个顶点到其余顶点的最短路径)的一种常用算法,是一种按照路径长度递增的次序分别产生到各顶点最短路径的贪心算法,

       算法思想:

     1.初始时,集合s仅包含源点v0,集合v-s中包含除了v0以外的所有顶点,v0到v-s中各顶点的路径长度或者为某个权值(如果他们之间有弧相连),或者为oo(没有弧相连)。

      2.按照最短路径长度递增的次序,从集合v-s中选出到顶点v0路径长度最短的顶点Vk加入到集合s中。

      3.加入Vk之后,为了寻找下一个最短路径,必须修改从v0到集合v-s中剩余顶点Vi的最短路径,若在路径Vk加上之后,使得v0到Vi的路径长度比原来没有加入Vk时的路径长度短,则修正v0到Vi的路径长度为其中较短的一条距离。

      4.重复以上步骤,直到集合v-s中的顶点全部加入到集合s中为止。

 对于以下图:

      

具体分析过程如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值