Jam*_*eat 5 algorithm tree big-o runtime graph
我有以下问题的可能解决方案,但不确定是否正确:
假设我们已经找到T
了加权无向图的最小生成树G = (V,E)
。我们希望能够有效地更新T
应该G
稍作改动。
添加一条边G
以生成新图。给出一个算法,用于T
及时为新图找到最小生成树O(|V|)
。
我的算法:
for each vertex do
if smallest edge not in T then
replace this edge with existing edge in T
break
end if
end for
Run Code Online (Sandbox Code Playgroud)
我在编写伪代码方面没有太多经验,所以我的算法可能过于简化或不正确。如果我错了,请纠正我。谢谢!
不知道您的算法是否正确,但O(|V|)
至少看起来不正确,因为无法在O(1)
.
将边添加e=(u, v)
到 MST的最常用方法T
是:
T
从u
到运行 BFSv
以检测该路径中具有最大值的边缘。( O(|V|)
)O(1)
).此解决方案背后的基本原理是,简单地将边添加到其中T
将创建一个循环,并且要恢复 MST 属性,您必须从该循环中删除具有最大值的边。
归档时间: |
|
查看次数: |
5812 次 |
最近记录: |