algorithm - 对该算法的复杂性感到困惑

标签 algorithm recursion complexity-theory

DAA(n)
{
    if(n<=1)
    {
         return 1;
    }
    else
    {
        return(DAA(n/2)+DAA(n/2)+n);
    }
}

我对包含术语 n 的 return 语句感到困惑。是否会被计算为T(n)=2T(n/2)+n;或者T(n)=2T(n/2)+c,请解释为什么?

最佳答案

它将是后者,因为尾随 n 不在函数调用中(为了成为前者,它需要类似于 return(DAA(n/2)+DAA(n/2)+DAA(n-1));

关于algorithm - 对该算法的复杂性感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17813907/

相关文章:

algorithm - O(|V| * k) 等于 O(|E|) 吗?

java - 查找嵌套循环的计算复杂度

algorithm - 如何选择一组顶点从多边形中减去以使扭曲最小?

algorithm - 高德纳·莫里斯·普拉特 vs 博耶·摩尔 : binary alphabet vs alphabet with large number of letters

algorithm - 如何接近奖励系统

algorithm - 这个算法有什么作用?

c++ - 没有 Y Combinator 的递归 lambda 回调

java - 汉诺塔计划为何有效?

php - PHPUnit 是否有一些内置的递归数组比较功能?

algorithm - 允许共享开始/结束顶点的有向最大加权二分匹配