什么是+ n

时间:2011-04-27 15:06:19

标签: algorithm

对于此算法,

Bugs(n)
    if n = 0 generate 5 bugs
    else 
        Bugs(n-2);
        for i ← 1 to n
            generate 1 bug
        Bugs(n-2);

递归关系为:T(n) = 2T(n-2) + n, T(0) = 5

为什么有a +n?是因为它们只有一个用于循环,所以如果它们是两个for循环那么它是+ n^2吗?

1 个答案:

答案 0 :(得分:7)

那么看看它对n!= 0情况的作用:

  • 它调用Bugs(n-2) - 因此T(n-2)为此部分
  • 它会产生n个错误 - 所以n假设“生成1个错误”是不变的
  • 它调用Bugs(n-2) - 所以T(n-2) again

总计:2T(n-2) + n