关于算法的这种说法意味着什么?

时间:2013-07-01 20:25:00

标签: algorithm theory graph-theory computation-theory

“算法X的成本在最大使用椭圆的区域内是线性的吗?”

这是否意味着算法X的成本随着椭圆面积的增加而线性增长?

注意,椭圆的面积增加一倍,这意味着指数,对吧?

2 个答案:

答案 0 :(得分:2)

如果A是算法将为O(A)的区域。

如果你考虑(x / a)^ 2 +(y / b)^ 2 = 1那么你的算法将是O(a * b)

如果在算法的每次迭代中将椭圆区域加倍,则区域将呈二次增长,但总复杂度将为O(An),​​其中An是上次迭代中的区域

修改

我会深入一点:

您的算法将执行f = A0 + A1 + ... + Ai 的操作是 i-th 迭代的区域 我们可以重写公式为f = A0 + 2 * A0 + 4 * A0 + ... + 2 ^ n * A0

O(f)= O(2 ^ n * A0)其中2 ^ n * A0 = An

再看看 https://en.wikipedia.org/wiki/Big_O_notation

答案 1 :(得分:1)

椭圆的面积是二次的(N ^ 2),而不是指数的(2 ^ N)。该陈述意味着成本是N的线性函数,其中面积是函数N ^ 2。