Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我们假设 T(n) 对于小 n 是常数,我们如何找到这个函数的解?
T(n) = T(n−2) + 2logn
到目前为止,我无法找到一种方法来表示整个函数。你能帮我么?我真的很想明白。
假设 n 是偶数,那么T(1) = T(0) = 0.
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) = Theta(n log(n))
对于n奇数,您可以注意到T(n-1) < T(n) < T(n+1),并得到相同的渐近界。
T(n-1) < T(n) < T(n+1)