我在尝试理解大O符号的概念时遇到了一些问题。因此,大O的定义如下所示,T(n) ∈ O(G(n)) if T(n) <= G(n) * C。
既然常量"C“可以是大于0的任何整数,下面的例子不也是正确的吗?
示例:
n log n ∈ O(log n)
n log n <= log n * c其中C等于n的值。
我知道答案是n log n ∉ O(log n),但我不明白为什么,因为C可以是任何常数。
提前感谢您的帮助:D
发布于 2010-07-28 03:28:17
C就是这样,一个常数。这意味着您不能说“让c是n的值”,因为您必须首先选择一些c,然后允许对所有n进行比较。
换句话说,为了使某些T( n )是O(G(n)),不存在常数c使得G(n)*c对所有n都大于T(n)。
因此,not不是O(log ),因为无论您选择什么常数,n >c都会导致not大于c。
发布于 2010-07-28 03:28:41
让我重复一遍你的话。
c可以是任何常量。
这意味着c不能依赖于n。
发布于 2010-07-28 03:28:45
这个想法是,对于任何n和固定的c,不等式都成立。因此,当你可能找到某个c使得doesn< can,(即任何c>n)时,你可以很容易地找到它不成立的其他n‘(即n'>c).
https://stackoverflow.com/questions/3347146
复制相似问题