首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >帮助使用大O符号

帮助使用大O符号
EN

Stack Overflow用户
提问于 2010-07-28 03:24:56
回答 8查看 885关注 0票数 9

我在尝试理解大O符号的概念时遇到了一些问题。因此,大O的定义如下所示,T(n) ∈ O(G(n)) if T(n) <= G(n) * C

既然常量"C“可以是大于0的任何整数,下面的例子不也是正确的吗?

示例:

代码语言:javascript
运行
复制
n log n ∈ O(log n)
n log n <= log n * c

其中C等于n的值。

我知道答案是n log n ∉ O(log n),但我不明白为什么,因为C可以是任何常数。

提前感谢您的帮助:D

EN

回答 8

Stack Overflow用户

发布于 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。

票数 11
EN

Stack Overflow用户

发布于 2010-07-28 03:28:41

让我重复一遍你的话。

c可以是任何常量

这意味着c不能依赖于n。

票数 4
EN

Stack Overflow用户

发布于 2010-07-28 03:28:45

这个想法是,对于任何n和固定的c,不等式都成立。因此,当你可能找到某个c使得doesn< can,(即任何c>n)时,你可以很容易地找到它不成立的其他n‘(即n'>c).

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3347146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档