Big O用于不属于彼此的2个函数

时间:2017-01-18 01:53:00

标签: algorithm big-o

  

给出两个函数f(n)和g(n)使得f(n)不是O(g(n))而g(n)不是   O(F(N))。

当我开始思考它时,我想到了n和n ^ 2。但是,阅读更多我意识到如果我的函数f是n并且g是n ^ 2,那么f primary属于O(g(n))。所以,我回到原点。关于如何去做的任何线索?

3 个答案:

答案 0 :(得分:4)

提示:你的功能需要非常反常。尝试使用sin(n)。

还要考虑手动构建f和g。选择一堆间隔,如[1,2],[3,4],[5,6],......其中f比g大得多,并且让g比其他区间的f大得多。< / p>

答案 1 :(得分:1)

设f(n)= n%2,g(n)= 1-n%2。 (此处x%y与C中相同 - 除以y后的x的余数)。

f = O(g)和g = O(f)都不。对于没有奇数n,k> 0使得f(n)<= kg(n),因为g(奇数)= 0并且f(奇数)= 1。类似地,对于偶数n而言,k> 0使得g(n)<= kf(n)。

答案 2 :(得分:1)

我想到的第一件事就是。

f(n) = (-n)^n
g(n) = 2*n