Big o 大O表示法中的常数c

Big o 大O表示法中的常数c,big-o,Big O,假设f(n)是算法的运行时 根据O(n)的函数定义,iff(n)C可以是任何东西(显然高于零)。没关系:0.1或1或1.000.000。唯一的一点是:它必须是常量,也就是说,可以一次性定义。它不能依赖于n。当然,C会影响整个算法的性能——但big-O的目的是评估性能,而不是精确地计算性能(好吧,这是从定义上讲的)C可以是任何东西(显然高于零)。没关系:0.1或1或1.000.000。唯一的一点是:它必须是常量,也就是说,可以一次性定义。它不能依赖于n。当然,C会影响整个算法的性能-但big-O的

假设f(n)是算法的运行时


根据
O(n)
的函数定义,if
f(n)
C
可以是任何东西(显然高于零)。没关系:
0.1
1
1.000.000
。唯一的一点是:它必须是常量,也就是说,可以一次性定义。它不能依赖于
n
。当然,
C
会影响整个算法的性能——但big-O的目的是评估性能,而不是精确地计算性能(好吧,这是从定义上讲的)

C
可以是任何东西(显然高于零)。没关系:
0.1
1
1.000.000
。唯一的一点是:它必须是常量,也就是说,可以一次性定义。它不能依赖于
n
。当然,
C
会影响整个算法的性能-但big-O的目的是评估性能,而不是精确地计算性能(好吧,这是从定义开始的)

根据定义(例如),任何正数,只要它是常数

例如,
n^2
不在
O(n)
中,因为没有正数
c
,因此所有
n
n^2=cn
;这个等式可以简单地解为
c=n
,但根据定义
n
不是常数。

根据定义(例如),任何正数,只要它是常数

例如,
n^2
不在
O(n)
中,因为没有正数
c
,因此所有
n
n^2=cn
;这个等式可以简单地解为
c=n
,但根据定义
n
不是一个常数。

任何范围

c
作为常量意味着它不依赖于问题的大小
n
。每当
n
的值改变时,
c
保持不变。

任何范围


c
作为常量意味着它不依赖于问题的大小
n
。每当
n
的值改变时,
c
保持不变。

它可以是任何正数。如果是0,你什么也不做,如果是负数,你会破坏一些东西

简单地说,c是一个由两部分组成的常数:

  • 算法一半。例如,您的算法必须在整个输入集合中迭代5次。所以常数是5。如果您的另一个算法迭代3次。然后常数将是3,但两个算法的复杂度都是O(n)
  • 硬件一半。在你的电脑上计算一个操作需要时间。如果你在奔腾1和现代Xeon上的同一个集合上启动应用程序实现你的algo,很明显Xeon将更快地计算结果

  • 它可以是任何正数。如果是0,你什么也不做,如果是负数,你会破坏一些东西

    简单地说,c是一个由两部分组成的常数:

  • 算法一半。例如,您的算法必须在整个输入集合中迭代5次。所以常数是5。如果您的另一个算法迭代3次。然后常数将是3,但两个算法的复杂度都是O(n)
  • 硬件一半。在你的电脑上计算一个操作需要时间。如果你在奔腾1和现代Xeon上的同一个集合上启动应用程序实现你的algo,很明显Xeon将更快地计算结果

  • 虽然
    c
    独立于
    n
    ,但允许排除小
    n
    的一些特殊情况,并仅为
    n确定
    c
    ≥ n0

    比如说,

    n ≤ n^2 for n ≥ 1
    
    而且

    n ≤ 0.01*n^2 for n ≥ 100
    

    虽然
    c
    独立于
    n
    ,但允许排除小
    n
    的一些特殊情况,并仅为
    n确定
    c
    ≥ n0

    比如说,

    n ≤ n^2 for n ≥ 1
    
    而且

    n ≤ 0.01*n^2 for n ≥ 100
    
    假设
    f(n)=n+1
    g(n)=n^2

    我们试图证明
    f(n)=O(g(n))

    对于n=1,f(n)=2,g(n)=1
    f(n)n

    对于n=2,f(n)=3,g(n)=4
    f(n)=1
    if
    c=2

    但是如果
    f(n)=O(g(n)
    n>=2
    假设
    f(n)=n+1
    g(n)=n^2

    我们试图证明
    f(n)=O(g(n))

    对于n=1,f(n)=2,g(n)=1
    f(n)n

    对于n=2,f(n)=3,g(n)=4
    f(n)=1
    if
    c=2


    但是
    f(n)=O(g(n)
    对于
    n>=2
    如果
    c=1

    不,不,不。
    c
    n
    无关。你不能对
    c?n
    (把
    放进去,这样c的值就大于0,所以对于所有的n0来说,你不知道为什么你要把
    c
    与某个东西进行比较。它只是。它是康斯坦诺。不,不。
    c
    n
    无关。你不能说任何关于
    c?n
    (然后把
    的值设为大于0的值,这样就不知道为什么要把
    c
    与某个东西进行比较。它只是。它是常量。这是为我做的。谢谢!这是为我做的。谢谢!