带你读《图解算法小抄》二十五、图(2)

简介: 带你读《图解算法小抄》二十五、图(2)

带你读《图解算法小抄》二十五、图(1)https://developer.aliyun.com/article/1347772?groupCode=tech_library


3.Dijkstra 算法


Dijkstra 算法是一种用于在图中寻找节点之间最短路径的算法,该图可以表示道路网络等。

 

算法存在多个变种;Dijkstra 最初的变种用于找到两个节点之间的最短路径,但更常见的变种将某个节点固定为“源”节点,并找到源节点到图中所有其他节点的最短路径,生成一个最短路径树。


image.png

 

Dijkstra 算法用于找到 a 到 b 的最短路径。它选择未访问的具有最低距离的顶点,计算通过它到达每个未访问邻居的距离,并且如果较小则更新邻居的距离。完成邻居的处理后,将其标记为已访问(设置为红色)。

参考资料

  • Wikipedia
  • YouTube 上的 Nathaniel Fan 视频
  • YouTube 上的 Tushar Roy 视频

4.Bellman-Ford 算法


Bellman-Ford 算法是一种计算带权有向图中单个源顶点到其他所有顶点的最短路径的算法。相比于相同问题的 Dijkstra 算法,Bellman-Ford 算法更为灵活,因为它能够处理某些边权重为负数的图。

 

image.png

image.png

1复杂度

最坏情况下的时间复杂度:O(|V||E|) 最佳情况下的时间复杂度:O(|E|) 最坏情况下的空间复杂度:O(|V|)

2参考资料

  • Wikipedia
  • YouTube 上的 Michael Sambol 视频


带你读《图解算法小抄》二十五、图(3)https://developer.aliyun.com/article/1347770?groupCode=tech_library

相关文章
|
5天前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
16 4
|
1月前
|
存储 人工智能 算法
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
160 0
|
1月前
|
存储 算法 C++
c++算法学习笔记 (8) 树与图部分
c++算法学习笔记 (8) 树与图部分
|
18天前
|
算法 计算机视觉
图像处理之基于图的广度优先搜索组件标记算法
图像处理之基于图的广度优先搜索组件标记算法
10 0
|
19天前
|
存储 算法
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
13 0
|
1月前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
|
1月前
|
算法 数据可视化
圆填充( CIRCLE PACKING)算法圆堆图圆形空间填充算法可视化
圆填充( CIRCLE PACKING)算法圆堆图圆形空间填充算法可视化
|
1月前
|
存储 算法
图的深度优先算法
图的深度优先算法
23 0
|
1月前
|
存储 编解码 自然语言处理
【软件设计师备考 专题 】深入理解数据压缩、递归和图的相关算法
【软件设计师备考 专题 】深入理解数据压缩、递归和图的相关算法
76 0
|
1月前
|
算法 搜索推荐 数据挖掘
图计算中的图算法有哪些常见的类型?请举例说明每种类型的算法。
图计算中的图算法有哪些常见的类型?请举例说明每种类型的算法。
60 0