递归式 T(n)=2T(n/2)+n/lgn的复杂度求解
符合主递归式条件的情况
首先对于可以用主方法求解的形式,这里不再说明,符合主方法的三种情况只要套用公式即可得到正确答案。
不符合主递归式条件 除以
有类似 形式的递归式存在,其解为 ,有些解答认为是 实际上并不准确。
同样这种形式也不符合主方法的条件,同样使用递归树法进行近似的求解,然后再使用代入法证明答案的正确性。
在计算这个递归式需要使用一些调和级数的知识
同样,首先计算叶节点的复杂度,同上 叶节点数量为 ,即每个叶节点复杂度为 ,总的复杂度为
接下来计算中间节点包括根节点的复杂度,同上,一共有 层,各层之和为
这里的累加项不再是一个等比数列,而是一个调和级数,即为
所以可以看出进行多出一次对数运算的原因在于分数的累加,因此总的复杂度
同样,下面使用代入法证明结果的正确性,因为证明步骤类似,这里也只证明渐近上界为 , 设,所以有
下面证明 ,为了证明的简便,我们假设n为2的幂次,即 ,则
对于极限 ,那么有
于是,得证