代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Lott

大O和小O符号的区别

  •  275
  • Jeffrey Lott  · 技术社区  · 16 年前

    两者的区别是什么 海上舞台 符号 O(n) 利托 o(n) ?

    3 回复  |  直到 9 年前
        1
  •  500
  •   Mohamed El-Nakeep    8 年前

    fo(g)说,本质上

    对于 常数的选择 A. 使得不等式0<=f(x)<=k g(x)适用于所有x>A.

    注意,O(g)是该条件适用的所有函数的集合。

    对于 常数的选择 K A. 使得不等式0<=f(x)<k g(x)适用于所有x>A.

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

    在Big-O中,只需要找到一个特定的乘数 不平等性超过某个最小值 .

    在Little-o中,必须有一个最小值 x K ,只要它不是负值或零。

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

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

    然而,为了f o(g)为真,那么g必须包含一个更高的值 权力 所以,f(x)和g(x)之间的相对距离必须随着x的增大而增大。

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

    以下内容适用于Big-O,但如果使用little-O则不适用:

    • xo(x)
    • xO(200*x)

    以下是little-o的真实情况:

    • xo(x!)
    • ln(x)o(x)

    注意,如果fˆo(g),这意味着fˆo(g)。e、 因此,同样正确的是,把o看作 <= 而o作为 < )

        2
  •  221
  •   Mohamed El-Nakeep    8 年前

    ≤ <

    例如,函数 f(n) = 3n

    • 在里面 O(n²) , o(n²) ,及 O(n)
    • O(lg n) , o(lg n) o(n)

    类似地,数字 1

    • ≤ 2 , < 2 ,及 ≤ 1
    • ≤ 0 < 0 < 1

    Big o table

    (注:该表是一个很好的指南,但其极限定义应根据 superior limit 而不是正常的限制。例如 3 + (n mod 2) O(1) lim sup

    我建议记住Big-O符号如何转换为渐近比较。比较比较容易记住,但不太灵活,因为你不能说n之类的话 O(1)

        3
  •  51
  •   wjandrea sebs    4 年前

    我发现当我不能从概念上理解某件事时,我会思考

    你知道的东西

    假设有一个算法在O(N)中运行。不错吧?但是假设你(你这个聪明的人,你)想出了一个运行在O( N )耶!更快!但是当你写论文的时候,你会觉得一遍又一遍的写这些东西很愚蠢。所以你写一次,你可以说,“在本文中,我已经证明了算法X,以前在时间O(N)中是可计算的,实际上在时间O(N)中是可计算的。”

        4
  •  3
  •   cglacet    5 年前

    一般来说

    渐近表示法可以理解为: (测试这一点的一个好方法就是使用类似 Desmos

    最后 h(n) ∈ O(n) 意味着这个功能 h 可以是这两个类别中的任何一个。它可能看起来很像 或者它可能会越来越小 什么时候 增加。基本上,两者都有 g(n) 也在 O(n)

    在计算机科学中

    在计算机科学中,人们通常会证明一个给定的算法同时允许两个上限 O 还有一个下限 𝛺

    𝛺(n) 这意味着它的复杂性在于 Θ(n) . 这就是我们的定义 Θ 它或多或少地转化为“渐近相等”。这也意味着没有一种算法能够解决给定的问题 o(n) . 再一次,粗略地说“这个问题不可能在不到十年的时间内解决。” N

    上界 O(n) 简单地说,即使在最坏的情况下,算法最多也会终止 步骤(忽略所有常数因子,包括乘法和加法)。下界 (n) N 步骤(再次忽略乘法和加法常数)。步骤的数量最多为 N 至少 所以这个问题的复杂性是“准确的” N ,而不是每次写的时候都说“忽略常数乘法/加法因子” (n) 简而言之。

    以身作则 min(array)

    . 这个问题的下界是 o(n) min 求解 min ∈ o(n) min ∈ O(n) 可以这样说 min ∈ Θ(n) .

        5
  •  0
  •   amirhe    5 年前

    no more than less than 另外,我们使用小o符号。大O和小O符号之间的差异类似于<=(小于等于)和<(少于)。

    推荐文章