任何人都可以解释其中哪一个具有最高的渐近复杂度以及原因,
10000000n vs 1.000001^n vs n^2
答案 0 :(得分:2)
您可以使用asymptotic analysis中的标准统治规则。
支配规则会告诉您n -> +Inf
,n = o(n^2)
。 (注意符号O(.)
和o(.)
之间的区别,后者表示f(n) = o(g(n))
iff存在序列e(n)
,它收敛为0
n -> +Inf
} f(n) = e(n)g(n)
。使用f(n) = n
,g(n) = n^2
,您可以看到f(n)/g(n) = 1/n -> 0
为n -> +Inf
。)
此外,您知道对于任何整数k
和实数x > 1
,我们n^k/x^n -> 0
为n -> +Inf
。 x^n
(指数)复杂性支配n^k
(多项式)复杂性。
因此,为了提高复杂性,您需要:
n << n^2 << 1.000001^n
注意:10000000n
可以用{em>松散的书面约定编写O(n)
,用于计算机科学中的渐近分析。回想一下算法的复杂度C(n)
是O(n)
(C(n) = O(n)
)当且仅当(iff)存在整数p >= 0
和K >= 0
时,所有n >= p
关系|C(n)| <= K.n
成立。
答案 1 :(得分:0)
在计算渐近时间复杂度时,您需要忽略n
的所有系数,并只关注其指数。
指数越高,时间复杂度越高。
在这种情况下
我们忽略n
的系数,留下n^2, x^n and n
。
但是,我们忽略了第二个,因为它的指数为n
。由于n^2
高于n
,您问题的答案为n^2
。