小编典典

Big-O 和 Little-O 表示法之间的区别

all

Big-O 表示法O(n)Little-O 表示法有什么区别o(n)


阅读 118

收藏
2022-03-23

共1个答案

小编典典

f - O(g) 本质上说

对于常数 k > 0 的至少一个 选择,您可以找到一个常数 a ,使得不等式 0 <= f(x) <= kg(x) 对于所有 x > a
都成立。

请注意,O(g) 是该条件成立的所有函数的集合。

f - o(g) 本质上说

对于常数 k > 0 的 每一个 选择,您都可以找到一个常数 a ,使得不等式 0 <= f(x) < kg(x) 对于所有 x > a
都成立。

再次注意,o(g) 是一个集合。

在 Big-O 中,您只需要找到一个特定的乘数 k ,对于该乘数 k ,不等式超过某个最小值 x

在 Little-o 中,必须有一个最小值 x ,只要它不是负数或零,则无论您使 k 多么小,不等式都在该最小值之后成立。

这些都描述了上限,虽然有点违反直觉,但 Little-o 是更强的陈述。如果 f - o(g) 与 f - O(g) 相比, f 和 g
的增长率之间的差距要大得多。

差异的一个例子是:f - O(f) 为真,但 f - o(f) 为假。因此,Big-O 可以理解为“f - O(g) 意味着 f 的渐近增长不快于
g’s”,而“f - o(g) 意味着 f 的渐近增长严格慢于 g’s”。这就像<=<

更具体地说,如果 g(x) 的值是 f(x) 值的恒定倍数,则 f - O(g) 为真。这就是为什么在使用 big-O 表示法时可以删除常量的原因。

但是,要使 f - o(g) 为真,则 g 必须在其公式中包含 x 的更高 次方 ,因此 f(x) 和 g(x) 之间的相对间隔实际上必须随着 x
变大而变大.

要使用纯数学示例(而不是指算法):

以下对于 Big-O 是正确的,但如果您使用 little-o,则不正确:

  • x² ∈ O(x²)
  • x² ∈ O(x² + x)
  • x² ∈ O(200 * x²)

以下情况适用于 little-o:

  • x² ∈ o(x³)
  • x² ∈ o(x!)
  • ln(x) ∈ o(x)

请注意,如果 f ∈ o(g),这意味着 f ∈ O(g)。例如 x² ∈ o(x³) 所以 x² ∈ O(x³) 也是正确的,(再次认为 O as<=和 o as <

2022-03-23