只需要确定一下:
当我在一个图上运行Dijkstra的算法时,最后我会得到一个生成树,对吗(不一定是最小生成树)
那么Dijkstra和PRIM/Kruskal之间的区别是,后两种算法将返回最小生成树?
谢谢
最佳答案
你是对的,有一个条件-图应该有来自源的生成树(即-图中的每个顶点都有来自给定源的路径)。
另外,正如@Henry所评论的那样-你应该继续算法直到找到所有顶点的路径,并且一旦到达目标就不要“停止”。
还要注意,dijkstra算法(通常是最短路径求解器)是为有向图定义的,mst通常是为无向图定义的。
(注意,很容易将每个无向图定义为有向图—只需为无向图中的每个边{u,v}添加(u,v)和(v,u)
关于algorithm - 运行Dijkstra算法的结果是生成树吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21725211/