Big o 如何比较指数复杂性?

Big o 如何比较指数复杂性?,big-o,time-complexity,complexity-theory,asymptotic-complexity,exponential,Big O,Time Complexity,Complexity Theory,Asymptotic Complexity,Exponential,我有一个在O中运行的算法(√x) ,其中x是我的输入 现在,我不使用x,而是使用x的位数,即n。我知道x=O(2ⁿ),因此我的算法应该是O(√x) =O(2n/2),对吗 我不能理解的是,据我所知,O(2n/2)相当于O(2)ⁿ)(换句话说:2n和2n/2以同样的速度增长)。但这不可能是正确的,因为这意味着(√x) 相当于O(x),这是false(x和√x不要以同样的速度增长) 我做错了什么?你认为O(2n)和O(2n/2)相等的假设是错误的 limn → ∞ 2n/2n/2 = limn →

我有一个在
O中运行的算法(√x) 
,其中
x
是我的输入

现在,我不使用
x
,而是使用
x
的位数,即
n
。我知道
x=O(2ⁿ),因此我的算法应该是
O(√x) =O(2n/2)
,对吗

我不能理解的是,据我所知,
O(2n/2)
相当于
O(2)ⁿ)
(换句话说:
2n
2n/2
以同样的速度增长)。但这不可能是正确的,因为这意味着(√x)
相当于
O(x)
,这是false(
x
√x
不要以同样的速度增长)


我做错了什么?

你认为
O(2n)
O(2n/2)
相等的假设是错误的

limn → ∞ 2n/2n/2 = limn → ∞ 2n/sqrt(2)n = limn → ∞ (2/sqrt(2))n = ∞
O(2n/2)
并不等同于
O(2n)


就O表示法而言,在谈论指数行为时,不同的基并不相等。

所以O(3^n)不等于O(2^n)?我的CS老师告诉我。他们的复杂性等级是相同的。但是,不,O(3^n)与O(2^n)不一样。有关证明,请参见AbcAeffchen的答案!(编辑:复杂度类是针对问题的,而不是针对特定的算法。) = ∞ ∀ a > b ⇒ aⁿ ∈ ω(bⁿ) limn → ∞ an/bn = limn → ∞ (a/b)n = 1 ∀ a = b ⇒ aⁿ ∈ Θ(bⁿ) = 0 ∀ a < b ⇒ aⁿ ∈ o(bⁿ)