algo(n)
for i in 0 to n {
for 0 to 8^i {
}
}
for i to 8^d {
}
任何关于此算法的时间复杂性的分析或信息都将是有用的。最坏的情况,最好的情况,下限/上限,theta / omega / big-o,递归关系等等。
答案 0 :(得分:0)
您的算法以指数时间(T ∈ Θ(c^n)
,c>1
)运行。您可以使用Sigma表示法分析内部for
循环(... for 0 to 8^i
)的迭代次数:
由于您的算法位于Θ(8^n)
,因此它也位于O(8^n)
(上渐近边界)和Ω(8^n)
(下渐近边界)。
上述分析是在假设最终d
循环分析中的for
小于或等于n
的情况下执行的,在这种情况下,嵌套的两个for
它之前的循环将占主导地位(因此我们不需要明确地分析最后一个非显性for
循环)。
答案 1 :(得分:0)
for i in 0 to n
for 0 to 8^i
和
for i to 8^d
让我们从第一个开始吧。假设内循环的每次迭代都需要恒定的时间,那么它的复杂度为C*8^i
。
现在,如果我们总结i
的可能值,我们得到:
8^0 + 8^1 + 8^2 + .... + 8^n-1
这是sum of geometric series a=1, r=8
,其总和是:
1 * (1-8 ^(n-1)) / (1-8) = 1 * (-1/7 + 8^(n-1)/7)
对于n->infinity
,这可以近似为8^(n-1)/7
,我们可以得出结论,复杂性为Θ(8^(n-1)/7) = Θ(8^n)
第2部分非常简单,是8 ^ d。
这使得T(n)
的总体复杂度在Θ(8^d + 8^n)