找出给定的负递归关系的时间复杂度

时间:2017-09-15 04:41:05

标签: algorithm time-complexity relation recurrence

复发关系的时间复杂度是多少 T(n) = T(n-3) + T(n-2) - T(n-1) if n>3 ,否则 T(n)=n

1 个答案:

答案 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)。