Algorithm 对数函数的渐近复杂性

Algorithm 对数函数的渐近复杂性,algorithm,big-o,asymptotic-complexity,Algorithm,Big O,Asymptotic Complexity,我知道在复杂性方面,O(logn)比O(n)快,后者比O(nlogn)快,后者比O(n2)快。 但是关于O(n2)和O(n2log),或者O(n2.001)和O(n2log)呢 这个函数的最大Oh和ω是多少?还有,什么是小哦? 与: 现在大哦有什么区别吗? 我很难理解如何比较logn和n的幂。如中所示,logn大约是n^0.000000…1还是n^1.000000…1?O(n^k)比O(n^k')对于所有k,k'>=0和k'>k O(n^2)将比O(n^2*logn) 请注意,您只能忽略常量,不

我知道在复杂性方面,O(logn)比O(n)快,后者比O(nlogn)快,后者比O(n2)快。 但是关于O(n2)和O(n2log),或者O(n2.001)和O(n2log)呢

这个函数的最大Oh和ω是多少?还有,什么是小哦? 与:

现在大哦有什么区别吗? 我很难理解如何比较logn和n的幂。如中所示,logn大约是n^0.000000…1还是n^1.000000…1?

O(n^k)
O(n^k')
对于所有
k,k'>=0
k'>k

O(n^2)
将比
O(n^2*logn)

请注意,您只能忽略常量,不能忽略任何与输入大小有关的内容

因此,
T(n)=n^2+n^2logn
的复杂度将是两者中最差的,即
O(n^2logn)


小哦

宽松条件下的小oh是一个保证上限。是的,它被称为little,而且限制性更强

n^2=O(n^k)
用于k>=2
n^2=O(n^k)
用于k>2

实际上,最引人注目的是
Big Oh


那么
T(n)=n^2.001+n^2logn

我们有n2.001=n2*n0.001和n2*log(n)

为了解决这个问题,我们需要弄清楚什么最终会更大,n0.001或log(n)

结果是,形式为nk且
k>0
的函数最终将接管
log(n)
足够大的
n

这里的情况也是如此,因此
T(n)=O
(n2.001

实际上,
log(n)
将大于n0.001。

(103300)0.001(1995.6<3300),在这种情况下,足够大的n大约是103650,一个天文数字

再次值得一提的是,103650。宇宙中有1082个原子

T(n)=n^2+n^2logn

这个函数的最大Oh和ω是多少?还有,什么是小哦

引用先前的答案:

不要忘记大O符号代表一个集合
O(g(n))
是一组 所有函数的
f
,使
f
的增长速度不超过
g
, 从形式上讲,也就是说存在
C
n0
这样的情况 我们有
| f(n)|=n0
。表情
f(n)=O(g(n))
是表示
f(n)
在集合中的缩写
O(g(n))

你也可以把大O看作
和小o的as
0都占据了主导地位。有趣的是,你甚至可以证明当n趋于无穷大时,
limn^e/(logn)^k=inf。由此可知,
n^0.001
占主导地位
logn

T2(n)=n^2.001 + n^2logn = Ө(n^2.001).
如果
f(n)=ㄊ(g(n))
那么
f(n)=O(g(n))
回答你的问题:

  • T1(n)=O(n^2 logn)
  • T2(n)=O(n^2.001)

但是T(n)=n^2.001+n^2对数呢?你的图有误导性。
n
的任意幂支配
log(n)
。对于像
n^0.001
这样一个缓慢增长的函数,在线交叉之前,
n
需要一个巨大的值。@axiom I消除了每个函数中
n^2
的公因子。顺便说一句,我试着在对数轴上绘制曲线,当我达到绘图程序能处理的最大浮动的极限时,它们仍然没有越过。因此,任何可以表示为双精度的数字仍然处于“小到足以使常数因素起作用”的状态;这包括一些微不足道的小数字,如可能的棋盘配置数或可观测宇宙中的原子数。让我们来看看。我认为你缺少的关键点是:
log(n)
n
的任何正幂增长得都慢,不管这一幂有多小。所以
log(n)
并不是
n
的任何幂。有一件事你可以说:
log(n)=n^{o(1)}
。也就是说,对于任何
epsilon>0
,它渐近地小于
n^{epsilon}
T2(n)=n^2.001 + n^2logn
T1(n)=n^2 + n^2logn = Ө(n^2 logn)
T2(n)=n^2.001 + n^2logn = Ө(n^2.001).