动态最小生成树

时间:2012-03-21 19:54:14

标签: algorithm insert minimum-spanning-tree

我想创建一个动态最小生成树。我在n个顶点上有一个现有的MS树,并且我从这个新顶点向所有现有顶点添加了一个顶点和边。如何有效地更新新图形的MST? O(n)是最佳的。我还可以使删除顶点操作有效吗?

1 个答案:

答案 0 :(得分:0)

O(n log n)使用Kruskal算法。关键思想是原始MST中未使用的任何边缘也不会在新的MST中使用。所以只需对n新边O(n log n)进行排序,将此排序列表与旧MST的边缘列表(您按排序顺序保存,对吗?)O(n)合并,然后运行Kruskal& #39; s算法重新生成边缘O(n)-ish的结果排序列表。