递归的复杂度T(n)= T(n-2)+ 1 / lgn?

iu

这是CLRS书中的一个问题。算法简介研究组网站对此给出了以下答案:在此处输入图片说明

http://clrs.skanev.com/04/problems/03.html

这个答案正确吗?我不明白最后两行。

别利亚科夫

不,这不对。还有一个错别字,而不是无穷大应该是n。为了获得严格的数学证明,您应该在另一个stackExchange网站(数学网站)上提问。但是出于您的直觉,我可以展示以下内容。

让我们想象一下,n = 2^2^k然后sum of 1/lg(i)等于

1/lg2 + 1/lg3 + 1/lg4 + 1/lg5 + 1/lg6 + 1/lg7 + 1/lg8 + 1/lg9 +
1/lg10 + 1/lg11 + 1/lg12 + 1/lg13 + 1/lg14 + 1/lg15 + ... + 1/lg n-1

这大约是

1/lg2 + 1/lg2 + 1/lg4 + 1/lg4 + 1/lg4 + 1/lg4 + 1/lg8 + 1/lg8 +
1/lg8 + 1/lg8 + 1/lg8 + 1/lg8 + 1/lg8 + 1/lg8 + ... + 1/lg n-1

等于

1/1 + 1/1 + 1/2 + 1/2 + 1/2 + 1/2 + 1/3 + 1/3 +
1/3 + 1/3 + 1/3 + 1/3 + 1/3 + 1/3 + ... + 1/ (2^k - 1) (as lg n = 2^k)

合并后,我们有

sum(1/i * 2^i) from 1 to 2^k-1

其中最后一个成员是n/2 / 2^k-1这是一些关于2^(2^k-k-1)这远远不是theta的lg lg n = k当然,总和甚至更大。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

递归关系的时间复杂度:T(n) = nT(n^1/2)+ O(1)

递归T(n)= 2T(n-1)+ 1给出的递归算法的时间复杂度是多少

关系的时间复杂度T(n)= T(n-1)+ T(n / 2)+ n

T(n) 的时间复杂度 = T(n - 1) + (n - 1)^2

递归的复杂度T(n)= T(n / 2)+ T(n / 2)+ n ^ 2?

T(n)的时间复杂度= 2T(n / 2)+ O(1)是多少

n ^ 2或n * lgn * lgn中哪个更有效?

解决递归关系:T(n)= 3T(n / 5)+ lgn * lgn

循环关系的最坏情况和最佳情况运行时复杂度 T(n) = 2T(n/2) + T(n-1) + 常数

为什么这种简单算法T(n / 2)+1的最坏情况时间复杂度与n ^ 2 + T(n-1)相反?

T(n)=n⋅log(n)+ T(n-1)的时间复杂度是多少?

T(n) = 2T(n/2) + n/2 的复杂度(没有大师定理)?

T(n)= 3T(n/2) + n^2 的时间复杂度是多少?

递推关系的时间复杂度 T(n) = T(n-1)*n

T(n)=(T(n-1)+ n!)的时间复杂度是多少?

查找以下重复发生的复杂度:T(n)= T(n / 2)+ log(n)

n/1 + n/2 + n/3 + 的 Big-O 复杂度

f1(n) / f2(n) 的时间复杂度

递归函数的时间复杂度是多少,它调用自己 N 次而少了 1 次?

O(n^2) 的空间复杂度

取决于2个输入的算法的时间复杂度T(n)

为什么计算斐波那契数列的递归方法的时间复杂度是2 ^ n而不是2 ^ n ^ 2?

T(0) = 1, T(1) = 0, T(n ) = 2* T(n-2) 的递归关系

g(n)复杂度为O(n ^ 2)的算法的时间复杂度

归并排序的时间复杂度:函数似乎被调用 2*n-1 次而不是 O(log n) 次

如何递归求解T(n)= 5T(n / 2)+ n ^ 2,T(1)= 2

f(n)的复杂度= 1 / n ^ 5

求解递归关系:T(n)= T(n-1)+ T(n / 2)+ n

时间复杂度:O(n)VS O(2 ^ n)