数据结构-6.5图

前言-数据结构

数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。

最短路径(有向网)

  • 求两个顶点的最短路径 (解决甲地到乙地的那条路径最短例子)
  • 单源点的最短路径(不是求任意两个点的最短路径,那个是顶点对):给定一个出发点(单源点)和一个有向网G = {V,E}求出源点到其他各顶点之间的最短路径

迪杰斯特拉(Dijkstra)算法

  • 说明

  • 设置并且逐步扩充一个集合S(存放已经求出最短路径的顶点 ),

  • V(所有顶点) - S,其实也就是W

  • 直到V(所有顶点) - S为空

  • 例子

  • 并且是两个点之间的 和权(就是加起来的权) 最小就行 比如:1-2-4-5 = 11 + 12 = 23 < 1-5 = 30
    在这里插入图片描述

  • 最后 在这里插入图片描述

  • 总结算法

  • 设源点V1则S包含V1,W(除V1外的所有顶点) = V(所有顶点集合) - S(V1)

  • 如果有弧<Vi,Vj>,两个顶点的距离为权值,否则就是∞

  • 选择一个权值最小的顶点Vm加入到S中,每次往S中加入一个顶点,就要修正到各个顶点的距离

  • 如果<Vi,Vm> + <Vm,Vj> < <Vi,Vj>,那么就将Vi到下一个顶点的距离改为 Vm到下一个顶点的距离<Vi - Vj+1> -> <Vm - Vj+1>

  • 直到W为空,S中包含所有顶点为止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值