Math 如何解决T(n+;1)=T(n)+;洛根
我有一个递归:Math 如何解决T(n+;1)=T(n)+;洛根,math,time-complexity,Math,Time Complexity,我有一个递归: T(1)=a, n=1 T(n+1)=T(n)+logn, n>=1 当我通过替换进行解析时,我得到以下表达式: T(n)=log(n-1)...+log(n-k)+T(n-k) (K为n-1) 那么 T(n)=log(n-1)...+log(1)+T(1) log(1)=0,T(1)=a 从这里开始,我不知道如何获得复杂度为O(n^2)的表达式[这是练习中需要的] 有人能帮我吗 谢谢正如你自己所想,T(n)=log(n)+…+日志(1)=日志(n!) 众所周知,这是
T(1)=a, n=1
T(n+1)=T(n)+logn, n>=1
当我通过替换进行解析时,我得到以下表达式:
T(n)=log(n-1)...+log(n-k)+T(n-k)
(K为n-1)
那么
T(n)=log(n-1)...+log(1)+T(1)
log(1)=0,T(1)=a
从这里开始,我不知道如何获得复杂度为O(n^2)的表达式[这是练习中需要的]
有人能帮我吗
谢谢正如你自己所想,
T(n)=log(n)+…+日志(1)=日志(n!)
众所周知,这是在
O(nlog(n))
中。为了说明这一点,我们可以给出一个上限和下限:对数(n)+…+对数(1)=对数(n)+…+对数(n/2)>=对数(n/2)+…+log(n/2)=n/2*log(n/2)=n/2*log(n)-n/2=Ω(n*log(n)) 因此,我们可以得出如下结论:
T(n)=Θ(n*log(n))
正如您所发现的T(n)=log(n!)
。您可以使用和替换n代码>与(n/e)^n*\sqrt{2\pi n}
。因此,您将得到T(n)~nlog(n/e)+0.5log(2pi*n)=θ(nlog(n))