此表达式 f ( n )= 2 O ( n )意思是,以一种正式的形式?
答案 0 :(得分:4)
声明f(n) = 2^O(n)
等同于
log_2(f(n)) = O(n)
(实际上,任何对数都可以),所以这意味着有一些常量C > 0
,这样
log_2(f(n)) <= C*n <=> f(n) <= 2^(C*n)
对于所有足够大的n
。现在, b * c =(a b ) c ,所以另一种方式就是说
f(n) = O(b^n)
某些b > 0
的。此b
可以是1.5
,4
或1000000000000
,因此它不会告诉您太多。所有它给你的是f
是指数的,所以它比O(n!)
渐近地好,但它并没有告诉你它是非常糟糕,糟糕,真的很糟糕还是真正灾难性的不好。