图论part09dijkstra算法

dijkstra算法:有向图的最短路径及到达问题

该算法可以同时求到所有节点的最短路径

权值不能为负数

类似于pirm算法(针对无向图),dijkstra算法三部曲:

  1. 选源点到哪个未被访问的节点近(prime:哪个未被访问的节点到生成树的距离最近)
  2. 标记最近的点(将距离树最近的节点加入树)
  3. 更新非访问节点到源点的距离(更新minDist数组)

还是要初始化minDist数组用来存距离源点(起点)的最小距离,且初始化int最大值

这里要清楚和最小生成树就不同了, 最小生成树里面含有多个节点,一个非树节点可能和树里面的多个节点都相连,mindist存的是距离最近的那一个,比如树里有五个节点,节点6(非树)与树中的节点4、5都相连,距离分别是3和6,mindist取3;而dijkstra算法是存每个未访问节点到起点的最短距离,在mindist里面从起点开始数值应该由近到远累加的,所以说该算法可以求起点到所有节点的距离

Dijkstra堆优化

就是利用小顶堆将第一步优化,在使用邻接表使遍历更高效

小顶堆

相关推荐
信奥卷王2 小时前
[GESP202503 五级] 原根判断
java·数据结构·算法
兮山与2 小时前
算法4.0
算法
nju_spy2 小时前
力扣每日一题(二)任务安排问题 + 区间变换问题 + 排列组合数学推式子
算法·leetcode·二分查找·贪心·排列组合·容斥原理·最大堆
初听于你2 小时前
高频面试题解析:算法到数据库全攻略
数据库·算法
翟天保Steven2 小时前
ITK-基于Mattes互信息的二维多模态配准算法
算法
代码对我眨眼睛2 小时前
226. 翻转二叉树 LeetCode 热题 HOT 100
算法·leetcode·职场和发展
黑色的山岗在沉睡3 小时前
LeetCode 494. 目标和
算法·leetcode·职场和发展
haoly19896 小时前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
学Linux的语莫10 小时前
机器学习数据处理
java·算法·机器学习
earthzhang202110 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程