渐近 - 逆序列大o

时间:2016-08-10 13:54:53

标签: algorithm

这是对的吗?

1/(1+2+.....+sqrtN) =1/((N+sqrtN)/2)=2/(N+sqrtN)=1/N =O(1/N) =O(1)

或者它等于O(N),如果是,那么O(1 / N)中的N是指什么。 N在这里处理非常大的操作,如果是这样,则sqrtN操作的总和也必须等于N,因此导致O(1)。

我很高兴知道大O比率我在哪里出错了。

2 个答案:

答案 0 :(得分:1)

O(1/N) <= O(1)

算法为O(1 / N)意味着它以比单个指令组成的算法更少的步长渐近地执行。如果它以比所有N > N0的步骤少的步骤执行,则它必须完全没有针对那些n的指令。由于检查'if N > N0'至少需要花费1条指令,因此它必须不包含所有N的说明。

总结:唯一的算法O(1/N)是空算法,不包含任何指令。

答案 1 :(得分:0)

你可能错过了大O notanotation只提供函数顺序的上限。所以你的函数都是O(n)和O(1 / n)和O(1)(与n ^ 2相同的是O(n ^ 2)和O(n ^ 3)和O(n ^ 4)。

也许你真正想要的是大Θ符号,它给出了下限和上限