图论学习2

图论学习2

目录

对dijkstra算法的思考

dijkstra算法的实现

01 对dijkstra算法的思考

dijkstra算法的关键思路是,如果对接下来的每一步,都保证权值最短,同时,对于做出该步的决策,保证其最优,则我们就能够得出最小的权值和。

对于这两个关键步骤,算法中的对应为:

  1. 对每一步保证权值最小:

算法中,在标注了起始点之后,求得各个点距离其的距离矩阵。对于接下来每一步,都选择距离矩阵中权值最小的那一个进行下一步。这里的“进行下一步"也即把暂时点T变为永久点P。

  1. 对做出该步的决策保证最优:

每当有一个点变为永久点之后,我们都要重新计算距离矩阵。重新计算距离矩阵的目的是:计算出假如从第一点出经过该永久点的总路程。这里的总路程代表的是从原始出发点到最近一次变为永久点能够到达永久点所能够够到点的最短距离。对于该永久点,找出下一个最短距离的意义是,探索从原始点出发能够到达的达永久点所能够够到点的最短距离。如此,当所有点都能够变为永久点时,我们得到了从起始点到任意一点的最短距离。

02 弗洛伊德算法

弗洛伊德算法的核心思想为:

 直接在图的带权邻接矩阵中用插入顶点的方法依次构造出n个矩阵d1,d2..dn,使最后得到的矩阵dn成为图的距离矩阵,同时也求出插入点矩阵以便得到两点间的最短路径.

算法实现如下:

03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值