Big-Omega是否会增加分配?

时间:2017-02-14 17:24:30

标签: performance math big-o complexity-theory theory

函数的大欧米茄总是等于所有子函数的大欧米茄吗?

例如:

F(x) = a(x) + b(x) + c(x)...

big-omega(F(x) = big-omega(a(x)) + big-omega(b(x)) + big-omega(c(x))...

这总是如此吗?

对于像在数组中找到第i个最低值的事情一样。

每个功能都适用吗?

1 个答案:

答案 0 :(得分:1)

简短回答:是的,只要术语数是固定常数。如果术语的数量是可变的,那么它会变得有点棘手。

但是,对于有限数量的术语,在写出来之后永远不会完成:

big-omega(a(x)) + big-omega(b(x)) + big-omega(c(x)) ...

原因是因为随着x变得任意大,除了一个术语之外的所有术语都会消失 - 要么是由于具有相同的大欧米茄复杂性,要​​么是由于更大的大欧米茄复杂性所包含。

示例:

f(x) = x^3 + x^2 + x
big-omega(f(x)) = big-omega(x^3 + x^2 + x) = big-omega(x^3)

现在,考虑一下:

f(x) = Summation(n = 1..x; n)

在这里,我们知道扩展

Summation(n = 1..x; n) = x(x+1)/2 = x^2/2 + x/2

所以,     big-omega(f(x))= big-omega(x ^ 2/2)+ big-omega(x / 2)= big-omega(x ^ 2)

但是,使用原始公式,请考虑:

big-omega(Summation(n = 1..x; n)) != big-omega(1) + big-omega(2) + ... big-omega(n)

在一系列可变的术语上应用big-omega可能会导致混淆。