考虑只有加权联合启发式(NO PATH COMPRESSION!)和n个不同元素的不相交集的林实现。将T(n,m)定义为执行n-1个联合序列的最坏情况时间复杂度,m以任何顺序查找,其中m是任何大于n的正整数。
我将T(n,m)定义为执行n-1个联合的序列,然后m找到AFTERWARDS,因为在最大的树上执行查找操作可能花费的时间最长。因此,T(n,m)= m * log(n)+ n - 1,因为每个联合采用O(1)因此n-1个联合是n-1步,并且每个联合每个采用log(n)步骤作为n-1个联合后的结果树的高度由log_2(n)限定。
我现在的问题是,选择的T(n,m)看起来不错吗?
其次,是T(n,m)Big Omega(m * log(n))?我的主张是c = 1且n> = 2,假设可能的最小T(n,m)是m * log(2)+ 1,这显然大于m * log(2)。看起来相当愚蠢,但这似乎对解决方案来说太容易了,所以我怀疑我的正确性。
提前致谢。
答案 0 :(得分:0)
是的,T(n,m)看起来很好,不过我想你可以给出一个正式的归纳证据,证明最坏的情况是工会后面的发现。
至于证明T(n,m)是Ω(m log(n)),你需要证明存在n 0 和m 0 和c使得对于所有n≥n 0 且所有m≥m 0 ,它保持T(n,m)≥cmlog(n)。你所写的内容可以证明这只适用于n = 2。