algorithm - 大 O 符号 : "n" is "O(0.5n)"?

标签 algorithm big-o

定义: enter image description here

例子:

f(n) = n

g(n) = 0.5n

请注意,当 c = 1 且 n0 = 1 时,对于所有 n >= n0,n >= 1(0.5n)。

但是,定义指出“存在”一个实常数 c > 0,而不是“对所有”。所以在这种情况下,如果我们选择 c = 3 和 n0 = 1,则 n <= 3(0.5n) 对于所有 n >= n0 成立,因此,nO(0.5n )?

如果是这样,n is O(0.5n) 语句的语义是什么?
n对无穷大的行为类似于0.5n的行为?

最佳答案

是的,0.5n 也是 O(n)。对于 Big-O,您始终可以删除常量(阅读:忽略常量),因为它们不会随着输入大小而增长。

编辑:刚看到您的编辑。 Big-O 的语义意义不是一个函数在任意输入大小下与另一个函数“表现相似”——而是一个函数在常数因子内被另一个函数上限。

另请参阅此帖子的第二个答案:What is a plain English explanation of "Big O" notation?

关于algorithm - 大 O 符号 : "n" is "O(0.5n)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46258160/

相关文章:

自定义 malloc 算法

php - 计算平均值而不被流浪者抛出

java - 如何在Java中绘制带星号的倒金字塔

javascript - 使用两个指针的算法的时间复杂度。是0(n)还是0(n^2)

python - 如果 n 是正整数,Max(n, log(n, 2)) 应该返回 n 吗?

Python 字典键。 "In"复杂度

c++ - a 和 b 之间的数字(无排列)

algorithm - 数字字符串的压缩

c - 计算三叉树中具有给定键的所有节点的时间复杂度?

time-complexity - n + n-1 + n-2 + n-3 +(…)+ 1的Big-O复杂度