对于算法时间复杂度分析我需要知道当我从1运行到logn时函数n / i求和的结果是什么,我看到可信任的实际上是谐波和,但我高度怀疑它...
算法的功能原来是T(n)= 5T(n / 5)+ n / logn
这个问题最初是在算法第二版入门书中找到的
救我! :) 第58页的,有一句话说:
= n * sigma n / i,其中i从1变为logn
= n * sigma 1 / i,其中i从1变为logn
这是我唯一有问题的部分....因为他们所做的就是从sigma中取出那个n,但是它去了哪里?为什么让它消失是真的?
与他们所说的相反,我认为它应该是这样的:
= n * sigma n / i,其中i从1变为logn
= n * n * sigma 1 / i,其中i从1变为logn
= n ^ 2 * sigma 1 / i,其中i从1变为logn
答案 0 :(得分:0)
确实是谐波总和:
n/1 + n/2 + ... + n/logn = n* [ 1 + 1/2 + ... + 1/logn] = n*H(logn)
其中H(logn)
是登录harmonic number。
这本书使用了H(m) = theta(logm)
,因此H(logn) = theta(loglogn)
。总的来说,我们得到:T(n) = n*H(logn) = n*theta(loglogn) = theta(n*loglogn)
。