如果我们假设T(n)对于小n是常数,我们如何找到这个函数的解?
T(n) = T(n−2) + 2logn
到目前为止,我无法找到一种方法来表示整个函数。你能帮帮我吗?我真的很想了解。
假设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)
,并得到相同的渐近界。