如何在O(| E |)中删除图中的边后修正MST?

时间:2015-05-16 21:44:42

标签: algorithm graph graph-theory minimum-spanning-tree

我正在研究算法,我看过一个练习如下:

  

设G =(V,E)是加权无向图。设T为G的MST。让   e是T的边缘,并且让G'=(V,E')是从中获得的图   删除e后的G(即E'= E / {e})。 G'是连通图。描述   一个纠正T的算法,这样我们就可以获得G'的'MST'   O(| E |)。

AI明白,随着边缘的移除,T现在被分成两个连接的组件T1和T2,我们需要找到连接它们的最小距离路径,这是一条边,即我们需要找到连接在T1和T2之间的最小权重边缘。

问题是我不知道如何证明这个算法以及如何在O(| E |)中实现它。我发现this solution但它需要的时间超过O(| E |)。

我将不胜感激。

1 个答案:

答案 0 :(得分:1)

请注意| E | > = | V |。

选择任何顶点,将其标记为component1,迭代每个连接的顶点(沿着MST边缘)并标记component1。那是O(|V|)

通过扫描从另一个组件中找到一个顶点,直到没有标记为止。那是O(|V|)

迭代第二个分量中的每个顶点(沿着MST边缘),选择连接到component1的非MST边缘。跟踪最小边缘答案。那是O(|E|)

复杂性O(| E |)