Algorithm 运行Dijkstra';s算法?

Algorithm 运行Dijkstra';s算法?,algorithm,data-structures,Algorithm,Data Structures,只需确保: 当我在一个图上运行Dijkstra算法时,最后我会得到一个生成树,对吗?(不一定是最小生成树) 那么Dijkstra和PRIM/Kruskal之间的区别是后两种算法将返回最小生成树 谢谢您是正确的,有一个条件-图形应该有一个来自源的生成树(即-图形中的每个顶点v都有一个来自给定源的路径)。 此外,正如@Henry所评论的,您应该继续该算法,直到找到所有顶点的路径,并且在到达目标后不要“停止” 还要注意的是,Dijkstra算法(通常是最短路径求解器)是为有向图定义的,而MST通常是为

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

那么Dijkstra和PRIM/Kruskal之间的区别是后两种算法将返回最小生成树


谢谢

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

还要注意的是,Dijkstra算法(通常是最短路径求解器)是为有向图定义的,而MST通常是为无向图定义的。

(请注意,将每个无向图定义为有向图很容易——只需为无向图中的每个边{u,v}添加(u,v)和(v,u)

第二个条件是,当你到达目标时,你不停止Dijkstra。@Henry AFAIK,这是一种优化,不是原始算法,但这是一个很好的观点。谢谢