渐近复杂性比较

时间:2018-03-03 15:12:11

标签: algorithm time-complexity asymptotic-complexity

任何人都可以解释其中哪一个具有最高的渐近复杂度以及原因,

10000000n vs 1.000001^n vs n^2

2 个答案:

答案 0 :(得分:2)

您可以使用asymptotic analysis中的标准统治规则。

支配规则会告诉您n -> +Infn = o(n^2)。 (注意符号O(.)o(.)之间的区别,后者表示f(n) = o(g(n)) iff存在序列e(n),它收敛为0 n -> +Inf } f(n) = e(n)g(n)。使用f(n) = ng(n) = n^2,您可以看到f(n)/g(n) = 1/n -> 0n -> +Inf。)

此外,您知道对于任何整数k和实数x > 1,我们n^k/x^n -> 0n -> +Infx^n(指数)复杂性支配n^k(多项式)复杂性。

因此,为了提高复杂性,您需要:

n << n^2 << 1.000001^n

注意:10000000n可以用{em>松散的书面约定编写O(n),用于计算机科学中的渐近分析。回想一下算法的复杂度C(n)O(n)C(n) = O(n))当且仅当(iff)存在​​整数p >= 0K >= 0时,所有n >= p关系|C(n)| <= K.n成立。

答案 1 :(得分:0)

在计算渐近时间复杂度时,您需要忽略n的所有系数,并只关注其指数。

指数越高,时间复杂度越高。

在这种情况下

我们忽略n的系数,留下n^2, x^n and n

但是,我们忽略了第二个,因为它的指数为n。由于n^2高于n,您问题的答案为n^2