我一直在尝试学习Big O的复杂性,并且阅读了包括参考文献dheeran
给出的答案在内的多种资源。Polynomial time and exponential time
我对自己的怀疑很少,在阅读下面的答案后,因为它没有描述性和明确性,所以也没有提出新的疑问。
注:n很大(十亿)
Q1。我已经读到,对于任何c> 0,log n为O(n ^ c)。我对Big O的理解是,对于任何c值,log n始终小于n ^ c。因此,请检查此示例:
c = 0.000001
n = 1,000,000,000,即10亿
=> n ^ c = 1.00002072348
=> log(10亿)= 9
因此,当日志n为O(n ^ c)时,日志n> n ^ c为何
Q.2如答案中所述,复杂度增加的顺序是:
O(1),O(log n),O((log n)^ c),O(n),O(n ^ 2),O(n ^ c),O(c ^ n),O (n!)
如果0 -O(log n),O((log n)^ c) -O(n ^ c),O(c ^ n) -O(n),O(c ^ n)
这里“十亿”表示足够大。因此,它取决于功能。为了证明您需要n0
,在您的示例中,此处可以为10^20
。