Recursion 多步递推求解递推方程

Recursion 多步递推求解递推方程,recursion,big-o,time-complexity,recurrence,Recursion,Big O,Time Complexity,Recurrence,我正在研究一些算法,我试图确定在形成方程时如何处理多个递归步骤 因此,附件A: 对我来说很明显,这里的递推方程是:T(n)=c+2T(n/2),它在大O表示法中简化为O(n) 然而在这里,我们也有类似的情况,我得到了递归方程T(n)=n+2T(n/2),因为我们有两个递归调用,与第一个不同,在大O表示法中,它简化为O(n),但这里不是这样。关于如何在第二个方程中得到正确的递推方程,有什么意见吗 关于如何着手解决这一问题的任何意见都将是明智的 您可能对主定理感兴趣: 递推方程T(n)=n+2T

我正在研究一些算法,我试图确定在形成方程时如何处理多个递归步骤

因此,附件A:

对我来说很明显,这里的递推方程是:T(n)=c+2T(n/2),它在大O表示法中简化为O(n)

然而在这里,我们也有类似的情况,我得到了递归方程T(n)=n+2T(n/2),因为我们有两个递归调用,与第一个不同,在大O表示法中,它简化为O(n),但这里不是这样。关于如何在第二个方程中得到正确的递推方程,有什么意见吗


关于如何着手解决这一问题的任何意见都将是明智的

您可能对主定理感兴趣:

递推方程
T(n)=n+2T(n/2)
Theta(n logn)
,可使用该定理导出。要手动执行此操作,还可以假设
n=2^k
,然后执行以下操作:

T(n) = 2T(n/2) + n
     = 2(2T(n/4) + n/2) + n
     = (2^2)T(n/(2^2)) + 2n
     = (2^2)(2T(n/(2^3)) + n/(2^2)) + 2n
     = (2^3)T(n/(2^3)) + 3n
     = ...
     = (2^k)T(n/(2^k)) + kn
     = nT(1) + n log2 n
     = Theta(n log n)

很晚了,我可能看错了,但是你不小心发布了两次相同的代码片段吗?你发布的两个函数都是相同的,这是你的意图吗?不,但你们是对的!很抱歉,我刚刚修好了。我自己没注意到。斯图尔特,你介意再看一次这个问题吗?我用固定图像链接更新了它