如何证明常数是O(1)

时间:2016-06-10 05:34:07

标签: time-complexity big-o

你怎么可能证明2是O(1)?

更重要的是,你如何证明常数是theta(1)因此omega(1)和O(1)?

对于O,我的印象是你能够对f(n)进行简化,从而可以将其简化为1,但那么如何证明2对于某些n0是O(1) ?在这种情况下,n0值是多少?

2 个答案:

答案 0 :(得分:1)

根据定义,如果存在常量 n 0 M f 在O(1)中>对于所有 n f n )≤ M ·1 = M >≥名词 <子> 0

如果 f n )被定义为2,那么只需设置 M = 2(或任何更大的值;它不会问题)和 n 0 = 1(或任何更大的值;无关紧要),并满足条件。

  

[...]对于某些n0,2是O(1)?在这种情况下,n0值是多少?

n 0 此处不是参数;说“O(1)为某些n0”没有意义。您可以随意选择 n 0 任何值,使 f 满足条件;如果存在,则 f 为O(1),句点。

答案 1 :(得分:0)

Big Oh和Theta所以不指示算法所花费的时间。它们表示算法的输入增加的时间增加率。当你理解这一点时,事情会变得非常简单,而且数学也会减 f(x)= 2 {for all and any x} 总是O(1),因为输出值(2)根本不依赖于输入值(x)! O(1)代表这种独立性。 theta(1)和omega(1)也是如此。