当前位置: 首页 > article >正文

单源最短路径 -- Dijkstra

Dijkstra算法就适用于解决带权重的有向图上的单源最短路径问题  --  同时算法要求图中所有边的权重非负(这个很重要)

针对一个带权有向图G , 将所有节点分为两组S和Q , S是已经确定的最短路径的节点集合,在初始时为空(初始时就可以将源节点s放入,毕竟源节点到自己的代价是0 ), Q为其余未确定最短路径的节点集合,每次从Q中找出一个起点到该节点代价最小的节点u,将u从Q中移除,并放入S中,对u每一个相邻节点v进行松弛操作。松弛即对每一个相邻节点v,判断源节点s到节点u的代价与u到v的代价之和是否比原来的s到v的代价更小,若代价比原来小则要将s到v代价更新为s到u与u到v的代价之后,否则维持原样,如此反复,直到Q集合

贪心策略:每次去选从s->Q  去选最短路径边的那个顶点,去更新其连接的路径

代码实现

Dijstra算法的缺陷

带有负权路的,搞不定


http://www.kler.cn/a/104133.html

相关文章:

  • Python手搓C4.5决策树+Azure Adult数据集分析
  • JavaWeb——Servlet原理、生命周期、IDEA中实现一个Servlet(全过程)
  • 【MySQL】常见错误汇总
  • 后端 | 青训营笔记
  • MSQL系列(九) Mysql实战-Join算法底层原理
  • Lvs +keepalivede : 高可用集群
  • react使用 Ant ui框架
  • LeetCode每日一题——2678. Number of Senior Citizens
  • 【算法题】得到K个半回文串的最小修改次数
  • 【数据挖掘 | 关联性分析】万字长文详解关联性分析,详解Apriori算法为例,确定不来看看?
  • 【产品运营】产品需求应该如何管理
  • Stable diffusion的一些参数意义及常规设置
  • 爬虫进阶-反爬破解8(反爬的实战练习:爬虫文件的解析和数据的抓取+反爬措施的分析和突破+Scrapy接入Cookie池管理系统+分布式爬虫的架设)
  • redis缓存基本使用和缓存问题解决
  • AIGC扫盲和应用场景探究
  • NSSCTF做题第9页(3)
  • 使用Ubuntu虚拟机离线部署RKE2高可用集群
  • 【java学习—九】类的成员之四:初始化块(1)
  • cuda卸载
  • XTU-OJ 1178-Rectangle