运行时间变化Prim

时间:2019-02-25 11:07:02

标签: performance graph-algorithm

我想找到“最小生成树”,给定集合A的边必须在“最小生成树”中(因此它不是真正的最小生成树,但是给定A,它的最小和为重量)。因此,“最小生成树”必定包含A的所有边。我对Prim的算法做了一些修改,可以在下面找到。然后,我想查找该算法的运行时间,但是,在查找运行时间以检查两组集合的交集是否为空时,我遇到了麻烦。 有人可以帮我吗?那么,总运行时间将是多少?我已经将每个步骤的运行时间都放在了该步骤的旁边,除了“?”。

注释说明: δ(W)= {{v,w}∈E:w∈W,v∈V \ W}对于W⊂V

algorithm:


1. T = ∅, W = {v}  for some v ∈ V   O(1)
2.  While W ≠ V                     n iterations
       If (A ∩ δ(W) ≠ ∅) do              ?
           Take e = {v,w}  ∈ (A ∩ δ(W))  O(1)
           T = T ∪ {e}                   O(1)
           W = W ∪ {v,w }                O(1)
       Else
           Find e = {v,w } ∈ δ(W) s.t. ce ≤ cf ∀ f ∈ δ(W)  O(m)  
           T = T ∪ {e}                                     O(1)
           W = W ∪ {v,w }                                  O(1)
   End while

0 个答案:

没有答案