Language agnostic 这个函数的时间复杂度?

Language agnostic 这个函数的时间复杂度?,language-agnostic,big-o,time-complexity,complexity-theory,asymptotic-complexity,Language Agnostic,Big O,Time Complexity,Complexity Theory,Asymptotic Complexity,任何关于该算法时间复杂度的分析或信息都是有用的。最坏情况、最佳情况、上下限、θ/ω/大o、递归关系……等等。您的算法以指数时间(T)运行∈ Θ(c^n),c>1)。您可以使用Sigma表示法分析内部循环(…0到8^i)的迭代次数: 由于您的算法位于Θ(8^n),因此它也位于O(8^n)(渐近上界)和Ω(8^n)(渐近下界) 上述分析是在假设最终的for循环分析中的d小于或等于n的情况下进行的,在这种情况下,嵌套的两个for循环之前将占主导地位(因此我们不需要明确分析最后一个非主导for循环)

任何关于该算法时间复杂度的分析或信息都是有用的。最坏情况、最佳情况、上下限、θ/ω/大o、递归关系……等等。

您的算法以指数时间(
T)运行∈ Θ(c^n)
c>1
)。您可以使用Sigma表示法分析内部
循环(
…0到8^i
)的迭代次数:

由于您的算法位于
Θ(8^n)
,因此它也位于
O(8^n)
(渐近上界)和
Ω(8^n)
(渐近下界)


上述分析是在假设最终的
for
循环分析中的
d
小于或等于
n
的情况下进行的,在这种情况下,嵌套的两个
for
循环之前将占主导地位(因此我们不需要明确分析最后一个非主导
for
循环)。

algo(n)基本上由两部分组成:

algo(n)
   for i in 0 to n {
      for 0 to 8^i {
      }
   }
   for i to 8^d {
   }

让我们从第一个开始。假设内部循环的每次迭代都需要固定的时间,那么它的复杂性是
C*8^i
。 现在,如果我们对
i
的可能值求和,我们得到:

   for i to 8^d
这与a=1,r=8有关,其总和为:

8^0 + 8^1 + 8^2 + .... + 8^n-1
对于
n->infinity
,这可以近似为
8^(n-1)/7
,我们可以得出复杂性为
Θ(8^(n-1)/7)=Θ(8^n)

至于第二部分,它非常直截了当,是8^d


这给出了
T(n)
Θ(8^d+8^n)

中的总复杂性,你自己的想法是什么?我很乐意提供帮助,但我认为如果你首先诚实地尝试一下,你会学到更多。另外,请在上面添加大括号(
{
}
),以便我们可以看到
循环的范围。照目前的情况,似乎第三个
for
循环没有嵌套在前两个循环中,这是否符合预期?对于i到8^d
中的
d
是什么?我不知道如何正确编写它,但我对时间复杂度的尝试是:(对于i=0到n,求(8^i)之和)+8^d。我现在将添加大括号。@amit搜索算法在完成之前达到的深度。它可以是任何价值。
8^0 + 8^1 + 8^2 + .... + 8^n-1
1 * (1-8 ^(n-1)) / (1-8) = 1 * (-1/7 + 8^(n-1)/7)