算法系列2之最短路径

一.Dijkstra算法

口算方法

1.核心思路

激活条件:找未访问节点中的最小值作为下次访问节点

从起点开始,每次选离起点最近的未确定节点,用它去更新邻居的最短路径,直到所有节点确定

都是一组数据,这样展开方便看

2.步骤

引入三大数组(原点到其他节点距离;到该节点前经过哪个节点;是否被访问)

以一个起点为头,往下找跟他邻接的节点并标记

在依次遍历未被访问且路径存在的节点,找到路径最小值

在以该节点出发重复上面操作

最后结束后定义个满递增栈用来辅助遍历路径信息,其中startV的编号设置成-1作为路径结束标志

二.Dijkstra代码

.h

.c

main.c

相关推荐
‎ദ്ദിᵔ.˛.ᵔ₎1 分钟前
链表 复习
数据结构·链表
逻辑驱动的ken3 分钟前
Java高频面试考点14
开发语言·数据库·算法·哈希算法
故事还在继续吗6 分钟前
C++17关键特性
开发语言·c++·算法
Rabitebla10 分钟前
【数据结构】消失的数字+ 轮转数组:踩坑详解
c语言·数据结构·c++·算法·leetcode
菜菜的顾清寒12 分钟前
力扣100(20)旋转图像
算法·leetcode·职场和发展
Navigator_Z12 分钟前
LeetCode //C - 1025. Divisor Game
c语言·算法·leetcode
深念Y12 分钟前
王者荣耀与英雄联盟数值设计对比:穿透、乘算与加算、增伤乘算更厉害,减伤加算更厉害
数学·算法·游戏·建模·游戏策划·moba·数值
budingxiaomoli20 分钟前
优选算法-多源bfs解决拓扑排序问题
算法·宽度优先
隔壁大炮20 分钟前
10.PyTorch_元素类型转换
人工智能·pytorch·深度学习·算法
海清河晏11120 分钟前
数据结构 | 顺序栈
数据结构