我正在研究算法,我看过一个练习如下:
设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 |)。
我将不胜感激。
答案 0 :(得分:1)
请注意| E | > = | V |。
选择任何顶点,将其标记为component1
,迭代每个连接的顶点(沿着MST边缘)并标记component1
。那是O(|V|)
。
通过扫描从另一个组件中找到一个顶点,直到没有标记为止。那是O(|V|)
。
迭代第二个分量中的每个顶点(沿着MST边缘),选择连接到component1
的非MST边缘。跟踪最小边缘答案。那是O(|E|)
复杂性O(| E |)