algorithm - 生成树作为运行 Dijkstra 算法的结果?

标签 algorithm data-structures

只需要确定一下: 当我在图上运行 Dijkstra 算法时,最后我会得到一棵生成树吗? (不一定是最小生成树)

那么Dijkstra和PRIM/Kruskal的区别在于后两种算法会返回最小生成树?

谢谢

最佳答案

你是对的,有一个条件 - 图应该有一个来自源的生成树(即 - 图中的每个顶点 v 都有一个来自给定源的路径)。
此外,正如@Henry 所评论的那样 - 您应该继续算法,直到找到所有顶点的路径,并且一旦达到目标就不要“停止”。

另请注意,Dijkstra 算法(通常是最短路径求解器)是为有向图定义的,而 MST 通常是为无向图定义的。
(请注意,将每个无向图定义为有向图很容易 - 只需为无向图中的每条边 {u,v} 添加 (u,v) 和 (v,u))

关于algorithm - 生成树作为运行 Dijkstra 算法的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21725211/

相关文章:

algorithm - 计算大于或等于 a/b 的最小整数的最简单方法是什么?

Java:有效的数据结构来存储没有 'logical' 重复项的对象

php - CakePHP 返回 find ('all' ) 使用 'id' 作为数组索引

algorithm - 倒排列表联合

c++ - 检查 4 个点是否构成一个正方形

algorithm - 神经网络 - 反向传播

c# - Enumerable.Single 的错误执行?

java - 使用java创建最大堆

algorithm - 高斯分布+哈希表

c - 在c中实现图的数据结构的想法