复发关系的时间复杂度是多少
T(n) = T(n-3) + T(n-2) - T(n-1) if n>3
,否则 T(n)=n
答案 0 :(得分:1)
我不认为您的T
可以代表时间复杂性,因为它的许多值都是负数。我认为你的问题实际上是“T
”的复杂性。
如果T(n) = n
为奇数,则对于n> 3的递归关系的解为n
,如果4-n
为偶数,则为n
。
感应很容易:偶数n
T(n) = T(n-3) + T(n-2) - T(n-1)
= n-3 + 4-(n-2) - (n-1)
= 4 - n
对于n
奇数:
T(n) = T(n-3) + T(n-2) - T(n-1)
= 4-(n-3) + n-2 - (4 - (n-1))
= 4 - n + 3 + n - 2 - 4 + n - 1
= n
基本案例需要检查T(4), T(5), T(6)
,分别为0, 5, -2
。
因此T(n)= O(n)。