Dijkstra 算法小结

本文介绍了Dijkstra算法用于解决单源最短路径问题的基本原理和思路,详细讲解了算法流程,包括初始化、边的遍历和最短路径的更新。通过C++中的STL vector模拟邻接链表实现,并讨论了负权值图的问题。此外,还提到了如何通过记录前驱节点找到最短路径。
摘要由CSDN通过智能技术生成

Dijkstra是图论中用来求特定结点到其他所有结点的最短路径长度,即单源最短路问题的算法。


个人总结思路:

基本原理是按照最短路径长度递增的顺序确定每一个结点的最短路径长度,即先确定的结点的最短路径长度不大于后确定的结点的最短路径长度。根据结点数量进行一个大循环,每将一个新的结点加入已知路径集合中,都检查一遍所有与它相连的结点,更新从源点出发到达它们的距离向量(重要,根据结点是否在已知路径集合中有两种意义),选择其中最近的结点作为新加入已知路径集合的点并作为下次循环考查的结点,当所有结点考查完毕,则大循环结束。

(以下图片来自http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html,其中的"S集合"下文中以"K集合"代替,"U集合"即"非K集合")





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值