我有这种情况:
T(n)= T(n-1)+ O(n log n)
然后我猜解决方案是T(n)= O(n log n) 我使用替换方法。
T(n)< = c *(n-1)* log(n-1)+ O(n log n)
T(n)< = c * n * log(n)+ O(n log n)= O(n log n)
这是对的吗?
答案 0 :(得分:0)
我认为这是不正确的。我认为错误是在最后一步。
我认为正确的答案是:T(n)= O(n ^ 2 log n)。
原因如下:
T(n)= T(n-1)+ O(n log n)
T(n)= T(n-2)+ O((n-1)log(n-1))+ O(n log n)
T(n)= T(n-3)+ O((n-2)log(n-2))+ O((n-1)log(n-1))+ O(n log n )
T(n)> = O(n log n)+ O((n-1)log(n-1))+ O((n-2)log(n-2))+ ...... + O((n / 2)log(n / 2))
T(n)> =(n / 2)* O((n / 2)log(n / 2))
T(n)> = O(n ^ 2 log n)
另一方面:
T(n)= T(n-3)+ O((n-2)log(n-2))+ O((n-1)log(n-1))+ O(n log n )
T(n)< = n * O(n log n)
T(n)< = O(n ^ 2 log n)
因此:
T(n)= O(n ^ 2 log n)