最短路径 Dijkstral算法 和 Floyd算法

Dijkstral算法:

从起点A出发,可以直接到达的点是B、D、E,lowcost={max,10,max,30,100},visit={1,0,0,0,0},lowcost从A到其他节点的距离,visit已经找过的节点

找出和A相连的边中最短的,A->B边时最短的,这个时候我们可以知道A到B的最短路是10,这个时候我们需要比较是从A直接到达B、C、D、E距离短还是通过B作为中转更短,B连接的点只有C且C是A无法直接到达的,所有通过B中转更短。

数组更新为lowcost={max,10,60,30,100},visit={1,1,0,0,0}

然后在lowcost找出最短路,visit为1的节点跳过,最短路为A->D=30,看是否更新lowcost,A->D->C=50小于A->B->C=60;

A->D-E=90小于A->E=100,lowcost更新lowcost={max,10,50,30,90},visit={1,1,0,1,0}

然后在lowcost找出最短路,visit为1的节点跳过,最短为A->D->C=50,看是否更新lowcost,

A->D->C->E=60小于A->D->E=90;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值