我有一个表格的递归,
T(n) = T(n-1) + O(n)
应该等同于
T(n) = T(1) + O(2) + O(3) + .... + O(n-1) + O(n)
所以我的解决方案取决于
的价值O(n) + O(n-1) + O(n-2) + ... + O(1)
因为n + n-1 + n-2 + ... + 1 = n*(n+1)/2
,我认为这应该是O(n^2)
,但我不确定如何使用Big-O数学来解决这个问题。
我的意思是,
c * O(n) is O(n)
但是
n * O(n) is O(n^2)
我如何得出结论
O(n) + O(n-1) + O(n-2) + ... + O(1) = O(n^2)
答案 0 :(得分:1)
编辑:阅读评论后,这可能是一个简化/错误。尽管如此
会对原因感兴趣O(n) + O(n-1) + O(n-2) + ... + O(1)
= O(n) + O(1) + O(n-1) +O(2) .... O(n-k + 1) + O(k)
其中k = n / 2
现在
O(n - a) = O(n)
O(n) + O(a) = O(n)
所以有n / 2个术语:
O(n)+ O(n)......
so O(n^2)