-2

如果我们假设 T(n) 对于小 n 是常数,我们如何找到这个函数的解?

T(n) = T(n−2) + 2logn

到目前为止,我无法找到一种方法来表示整个函数。你能帮我么?我真的很想明白。

4

1 回答 1

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),并得到相同的渐近界。

于 2016-10-07T01:32:44.287 回答