算法问题

时间:2011-04-30 15:06:49

标签: algorithm

如果f(x)= O(g(x))为x - >无穷大,然后

一个。 g是f

的上限

B中。 f是g的上限。

℃。 g是f的下限。

d。 f是g的下限。

有人可以告诉我他们认为的时间和原因吗?

3 个答案:

答案 0 :(得分:3)

真正的答案是这些都不正确。

big-O notation的定义是:

|f(x)| <= k|g(x)|

适用于所有x > x0,部分x0k

在特定情况下,|k|可能小于或等于1,在这种情况下,说“| g |是| f |的上限”是正确的。但总的来说,那不是真的。

答案 1 :(得分:1)

回答

  

g是f

的上限

当x走向无穷大时,最坏的情况是O(g(x))。这意味着实际执行时间可能低于g(x),但绝不会低于g(x)

修改

正如Oli Charlesworth所指出的那样,只有任意常数k <= 1并且一般情况下不是这样。一般情况Please look at his answer

答案 2 :(得分:0)

这个问题会检查你对渐近代数或大符号的基础知识的理解。在

  

f(x) = O(g(x)) x接近无穷大

问题是,当您向函数f提供值x时,fx计算的值将按顺序 g(x)返回的em>。例如,假设

f(x) = 2x
g(x) = x

然后,当g(x)x返回f(x)的顺序相同时,返回值x。具体来说,这两个函数返回的值为x;这些函数都是 linear f(x)2x还是½x并不重要;对于任何常数因子f(x),将返回x数量级的值。这是因为大哦符号是关于忽略常数因素。随着x的增长,常数因子不会增长,因此我们假设它们与x几乎没有关系。

我们将g(x)限制为一组特定的功能。 g(x)可以是xln(x)log(x)so on以及so forth。它可能看起来好像何时

f(x) = 2x
g(x) = x

f(x)产生的值高于g(x),因此是g(x)的上限。但是再一次,我们忽略了常数因子,我们说 order-of 上限,这就是大的哦,就是g(x)的那个。