这个递归函数的大theta运行时间

时间:2013-02-03 01:35:34

标签: runtime recurrence big-theta

我需要一点帮助来确定这个功能的Big-Theta运行时间。

int recursive(int n) {

    sum = 0;
    for (int i = 1; i <= n; i++)
        sum++
    if (n > 1)
        return sum + recursive(n-1);
    else
        return n;
}

我知道如果for循环不在函数中,这个函数的运行时间是多少,但是循环让我失去了一点点。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

  • 如果它只是for循环,而不是递归,则函数将为O(n)
  • 如果它只是递归的,并且没有for循环,那么它也会是O(n)
  • 但是,它正在执行n递归步骤(我们知道O(n)它们每个都有一个O(n) for循环n步骤。

所以...这有帮助吗?