Algorithm n^0.000001和log(n)以及许多其他变量的大O复杂度比较

Algorithm n^0.000001和log(n)以及许多其他变量的大O复杂度比较,algorithm,time-complexity,big-o,complexity-theory,Algorithm,Time Complexity,Big O,Complexity Theory,我一直在努力学习Big O complexity,我阅读了多个参考资料,包括dheeran给出的带图表的答案。 我自己也没有什么疑问,在阅读了下面的答案后,也没有什么新的疑问,因为它不是描述性的和清晰的 注:n较大(以十亿为单位) 问题1。我已经读到,对于任何c>0,log n是O(n^c)。 我对大O的理解是,对于c的任何值,logn总是小于n^c。 因此,请检查此示例: c=0.000001 n=100000000,即10亿 =>n^c=1.00002072348 =>对数(10亿)=9

我一直在努力学习Big O complexity,我阅读了多个参考资料,包括
dheeran
给出的带图表的答案。

我自己也没有什么疑问,在阅读了下面的答案后,也没有什么新的疑问,因为它不是描述性的和清晰的

注:n较大(以十亿为单位)

问题1。我已经读到,对于任何c>0,log n是O(n^c)。 我对大O的理解是,对于c的任何值,logn总是小于n^c。 因此,请检查此示例:

c=0.000001

n=100000000,即10亿

=>n^c=1.00002072348

=>对数(10亿)=9

那么,当logn是O(n^c)时,logn为什么会大于n^c呢

问题2.如回答中所述,复杂性增加的顺序为:

O(1),O(对数n),O((对数n)^c),O(n),O(n^2),O(n^c),O(c^n),O(n!)

如果0 -O(对数n),O((对数n)^c)

-O(n^c),O(c^n)

-O(n),O(c^n)

这里的“十亿”表示足够大。因此,它取决于函数。为了证明您需要一个
n0
,在您的示例中,它可以是
10^20
。 另外,由于
c
是一个常数,因此可以根据
c
的值选择
n0
。例如,如果
c<1
,您可以选择
n0=10^{10/c}
。因此,对于所有
n>n0
n^c
大于
log(n)

对于第二个问题,肯定是
0c^n, 1, (log(n))^c, log(n), n^c, n, n^2, n!