如果我们假设小n的T(n)是常数,我们怎样才能找到这个函数的解?
T(n) = T(n−2) + 2logn
到目前为止,我无法找到表示整个功能的方法。你能帮我么?我真的很想了解。
答案 0 :(得分:1)
假设n是偶数,那是T(1) = T(0) = 0
。
T(n)/2 = log(n) + log(n-2) + ... + log(2)
= log((n/2)! * 2^n)
= n log(2) + log((n/2)!)
= n log(2) + n log(n) - n + O(log(n)) (Stirling's approximation)
因此对于n
偶数,T(n) = Theta(n log(n))
。
对于n
奇数,您可以注意T(n-1) < T(n) < T(n+1)
,并获得相同的渐近边界。