我必须计算T(n)= T(n-1)+ n的计算复杂度和计算复杂度等级。 我的问题是,我不知道有任何方法可以这样做,而我唯一熟悉的是普遍递归,它并不适用于这项任务。
答案 0 :(得分:1)
T(0) = a
T(n) = T(n-1) + n
n T(n)
---------
0 a
1 T(1-1) + n = a + 1
2 T(2-1) + n = a + 1 + 2
3 T(3-1) + n = a + 1 + 2 + 3
...
k T(k-1) + n = a + 1 + 2 + ... + k
= a + k(k+1)/2
基于以上猜测T(n)= O(n ^ 2)。我们可以通过归纳来证明这一点。
基本情况:T(1)= T(0)+ 1 = a + 1< = c * 1 ^ 2,条件是c> = a + 1。
归纳假设:对于直到并包括k的所有n,假设T(n)<= c * n ^ 2.
诱导步骤:显示T(k + 1)<= c *(k + 1)^ 2。我们有
T(k+1) = T(k) + k + 1 <= c*k^2 + k + 1
<= c*k^2 + 2k + 1 // provided k >= 0
<= c*(k^2 + 2k + 1) // provided c >= 1
= c*(k+1)^2
我们知道k> = 0并且我们可以选择c为+ 1和1中的较大者,由于T(0)是非负的,因此必须合理地为+ 1。