线性时间MST算法的特例

时间:2018-03-20 16:51:11

标签: algorithm kruskals-algorithm prims-algorithm

设G =(V,E)为加权无向连通图,其中全部为 边缘权重是不同的。设T表示最小生成树。

假设G有m≤n+ 157个边。对于这种特殊情况,请提供MST 在O(n)时间运行的算法击败Kruskals和Prims算法。

任何提示?

1 个答案:

答案 0 :(得分:0)

首先验证图表是否已连接。

然后重复直到图形为树(#edges = n-1):

  • 使用DFS查找循环。必须有一个,因为#edges> = n
  • 删除循环中最长的边缘。它不能成为MST的一部分。

完成后,您将获得MST。

尽管每次迭代可能需要O(n)次,但最多只能进行158次迭代,因此仍然是O(n)。