Big o T(n)=2T(n-1)和x2B的递推关系和大O是什么;O(N)?

Big o T(n)=2T(n-1)和x2B的递推关系和大O是什么;O(N)?,big-o,complexity-theory,Big O,Complexity Theory,我以为会是这样的 T(n) = 2T(n-1) + O(n) = 2(2T(n-2)+(n-1)) + (n) = 2(2(2T(n-3)+(n-2))+(n-1))+(n) = 8T(n-3) + 4(n-2) + 2(n-1) + n 它的结果类似于2i*(n-i)的总和,我的书中说它的结果是O(2n)。有人能给我解释一下吗?我不明白为什么它是2n,而不仅仅是O(n),因为(n-I)将继续n次。这个问题已经在上解决了。当我解决这个问题时,我得到: T(n)

我以为会是这样的

T(n) = 2T(n-1) + O(n)

     = 2(2T(n-2)+(n-1)) + (n)
     = 2(2(2T(n-3)+(n-2))+(n-1))+(n)
     = 8T(n-3) + 4(n-2) + 2(n-1) + n

它的结果类似于2i*(n-i)的总和,我的书中说它的结果是O(2n)。有人能给我解释一下吗?我不明白为什么它是2n,而不仅仅是O(n),因为(n-I)将继续n次。

这个问题已经在上解决了。当我解决这个问题时,我得到:

T(n) = n + 2(T(n-1))
     = n + 2(n - 1 + 2T(n-2))            = 3n - 2 + 2^2(T(n-2))
     = 3n - 2 + 4(n - 2 + 2(T(n-3)))     = 7n - 10 + 2^3(T(n-3))
     = 7n - 10 + 8(n - 3 + 2(T(n-4)))    = 15n - 34 + 2^4(T(n-4))
                                         = (2^4 - 1)n - 34 + 2^4(T(n-4))
……等等

有效地,复发归结为:

T(n)=(2n+1)*T(1)− N− 二,

请参阅数学堆栈交换链接,了解我们如何得出此解决方案。以T(1)为常数,上述重现的主要因素是(2(n+1))


因此,给定复发率的增长率是O(2n)

哪本书这么说(我也不理解,但可能更多的上下文会有所帮助)?你关注的是错误的子表达式
2^i
是主要部分。所以如果2^i是主要部分,这是否意味着T(n)=2T(n-1)+1的重复性是相同的?@hendersawn:是的,实际上你是对的。主导部分由递推中的T(n-1)系数生成。因此,只要常数和递归中的其他部分不可比或大于T(n-1),那么递归将产生相同的运行时间。因此,我很难理解——如果递归是2T(n-1)+1而不是2T(n-1)+n,它仍然是2^n吗?@hendersawn:是的,它仍然是O(2^n)。这里解决了类似的重复问题: