【问题标题】:What's the order/recurrence formula/closed formula of this recursive algorithm?这个递归算法的顺序/递归公式/封闭公式是什么?
【发布时间】:2014-11-05 02:15:58
【问题描述】:

我有一个叫做rec(n)的算法:

rec(n)
if (n=0) return 1
else 
    i=rec(n-1)
    A[n]=i
    return i

我正在查看它,从我所见,无论您在其中放入什么,它都将始终返回值 0,因此我假设递归关系为 a(n)=a (n-1)并且时间复杂度将是恒定的(即O(1)),但我对我对它的解释犹豫不决。谁能帮帮我?

【问题讨论】:

    标签: algorithm recursion big-o recurrence


    【解决方案1】:

    您是对的,无论 n 的值是多少,rec(n) 将始终返回 1。这可以通过使用关系 rec(n) = rec(n-1) 与基本情况 rec(0) = 1 进行归纳来简单地证明。

    另一方面,函数rec(n) 的复杂度应该是O(n)。这是因为在计算rec(n)的值时,首先需要计算rec(n-1)的值;但为了找到rec(n-1),您需要计算rec(n-2) 的值,依此类推。

    因此在计算rec(n)的值时,需要调用rec() n次,因此复杂度为O(n)

    【讨论】:

    • 您也可以使用递归来计算时间复杂度,例如 T(n) = T(n-1) + c 用于一些常量 c
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多