图之最短路径问题

将交通网络看成带权图,结点代表地点,边代表城市之间的路,权重代表路的长度。那么此时有两个问题值得解决:
①求一结点到其他结点的最短路径
②求任意两点间的最短路径

1 求一结点到其他结点的最短路径

1.1 迪杰斯特拉算法

对于图 G = ( V , { E } ) G=(V,\{E\}) G=(V,{E}),将图中的顶点分成以下两组:
第一组 S S S:已求出的最短路径的终点集合(开始为出发点 { v 0 } \{v_0\} {v0})。
第二组 V − S V-S VS:尚未求出最短路径的顶点集合(开始为 V − { v 0 } V-\{v_0\} V{v0}的全部顶点)。
算法将按最短路径的递增顺序逐个将第二组的顶点加入到第一组中,直到所有顶点都被加入到第一组顶点集 S S S为止。

1.2 实例

图:《数据结构用C语言描述第二版》耿国华图7.26

终点加入 v 1 v_1 v1加入 v 2 v_2 v2加入 v 3 v_3 v3加入 v 4 v_4 v4加入 v 5 v_5 v5
v 1 v_1 v1505035
v 2 v_2 v210
v 3 v_3 v325
v 4 v_4 v445454545
v 5 v_5 v5
S S S ( v 0 , v 2 ) (v_0,v_2) (v0,v2) ( v 0 , v 2 , v 3 ) (v_0,v_2,v_3) (v0,v2,v3) ( v 0 , v 2 , v 3 , v 1 ) (v_0,v_2,v_3,v_1) (v0,v2,v3,v1) ( v 0 , v 2 , v 3 , v 1 , v 4 ) (v_0,v_2,v_3,v_1,v_4) (v0,v2,v3,v1,v4) ( v 0 , v 2 , v 3 , v 1 , v 4 ) (v_0,v_2,v_3,v_1,v_4) (v0,v2,v3,v1,v4)

2 求任意两点间的最短路径

2.1 弗洛伊德算法

百度百科:弗洛伊德算法

2.2 实例

实例可以看这篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是聪聪黄吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值