Big o 大O表示法中的常数c
假设f(n)是算法的运行时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的
根据
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的目的是评估性能,而不是精确地计算性能(好吧,这是从定义开始的)根据定义(例如),任何正数,只要它是常数
例如,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)=1f(n)n
对于n=2,f(n)=3,g(n)=4f(n)=1
ifc=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)=1f(n)n
对于n=2,f(n)=3,g(n)=4f(n)=1
ifc=2
但是f(n)=O(g(n)
对于n>=2
如果c=1
不,不,不。c
与n
无关。你不能对c?n
(把
,放进去,这样c的值就大于0,所以对于所有的n0来说,你不知道为什么你要把c
与某个东西进行比较。它只是。它是康斯坦诺。不,不。c
与n
无关。你不能说任何关于c?n
(然后把
,的值设为大于0的值,这样就不知道为什么要把c
与某个东西进行比较。它只是。它是常量。这是为我做的。谢谢!这是为我做的。谢谢!