递归函数的Big-O表示法

一句话

这个问题已经被问过几次了,但是我仍然很难找到这个问题的答案,因为它比其他问题中提供的简单示例更加复杂。

我正在尝试为以下项找到大的O表示法:

float foo(int start, int end, int s)
{
  if (start == end) {
    return start*start;
  } else {
    int iSegment = (end - start + 1) / s;
    int iCurrResult = 0;
    for (int i=0; i<=s; i++)
      iCurrResult += foo (start + i*iSegment, start + (i+1) * iSegment - 1, s);
    return iCurrResult*iCurrResult;
  }
}
什么

每次调用该函数时,它都会s+1以一定范围的大小n/sn即元素数)递归地调用自身

这为您提供了复杂度函数:

T(n)=(s + 1)T(n / s)+1

根据Wolphram Alpha的说法,此功能位于O((s+1)^(logn/logs)) = O((s+1)^log(n-s))

请注意,这是在中Omega(n),因为n=s^log_s(n)=s^log(n)/log(s),很容易看出该函数严格(且渐近地)大于s^(logn/logs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归函数的Big-O表示法

来自分类Dev

如何找到潜水递归函数的Big O

来自分类Dev

大O表示法-递归

来自分类Dev

Big O表示法包含二次函数

来自分类Dev

仍然对Big O表示法感到困惑

来自分类Dev

确定此循环的BIg O表示法

来自分类Dev

递归函数的Big-O运行时间

来自分类Dev

我的递归函数的Big-O分析是什么?

来自分类Dev

我的递归函数的Big-O分析是什么?

来自分类Dev

递归函数的Big-O运行时间

来自分类Dev

Big O表示法中递归算法的复杂度如何计算?

来自分类Dev

函数的大O表示法是什么?

来自分类Dev

使用递归树进行大O表示法分析

来自分类Dev

显示函数是O(某物)(大O表示法)

来自分类Dev

计算原始运算并计算Big-O表示法

来自分类Dev

Big O表示法的复杂度顺序是什么?

来自分类Dev

对big-O表示法感到困惑(特定示例)

来自分类Dev

big-O表示法中的n是什么?

来自分类Dev

我对Big O表示法和规则感到困惑

来自分类Dev

以下big-o表示法彼此等同吗?

来自分类Dev

Big-O表示法8 ^ log2(n)

来自分类Dev

我对Big O表示法和规则感到困惑

来自分类Dev

计算Big O表示法的值是否有效?

来自分类Dev

嵌套的for循环和单个的for循环的Big O表示法

来自分类Dev

sort(..) 如何影响我的算法的 Big-O 表示法

来自分类Dev

对于计算次数为n的递归函数,Big-O复杂度是多少?

来自分类Dev

如何计算递归函数的上限时间复杂度(“ big O”)?

来自分类Dev

比较2个具有大O表示法的函数

来自分类Dev

函数具有负值时的大 O 表示法