Big o 如果a>=那么O(a+;b)=O(a)?

Big o 如果a>=那么O(a+;b)=O(a)?,big-o,complexity-theory,time-complexity,space-complexity,Big O,Complexity Theory,Time Complexity,Space Complexity,我试图更好地理解O(n)的概念,所以我想知道: 如果我们知道a>=b所以O(a+b)=O(a)? 我知道,O(a)+O(a)=O(2a)=O(a),但我想知道它是否适用于小于a的事物,我的意思是-如果O(a+b)=O(a) 我认为这是真的,因为a+b=O(2a),但我想知道我是否错了 (请注意,如果a和b是常数,则为真?) 谢谢大家! 根据这种情况,你把O(a+b)=O(a)简化是完全正确的 这是因为 a>=b (given) O(a+b) <= O(a+a) = O(2a) =

我试图更好地理解
O(n)
的概念,所以我想知道:

如果我们知道a>=b所以
O(a+b)=O(a)

我知道,
O(a)+O(a)=O(2a)=O(a)
,但我想知道它是否适用于小于a的事物,我的意思是-如果
O(a+b)=O(a)

我认为这是真的,因为
a+b=O(2a)
,但我想知道我是否错了

(请注意,如果a和b是常数,则为真?)


谢谢大家!

根据这种情况,你把O(a+b)=O(a)简化是完全正确的

这是因为

 a>=b (given)
 O(a+b) <= O(a+a) = O(2a) = O(a) // as clearly mentioned by you.
然后,你可以看到

O(a+b) = O(n+log(n)) = O(n) = O(a).

对于常数,这无关紧要,它将解析为O(1),因为它是常数时间复杂性的标准表示法。像O(2+3)=O(2)=O(1)因为没有什么像O(2),O(2+3)等。恒定复杂性的表示法总是O(1)。a和b将作为一个公共参数来测量,作为树的顶点数(通常放在术语n下),因此,您的复杂性也将是O(a)--->虽然在那里写O(a+b)更好更合适,或者更确切地说写O(n),其中n是表示树的顶点数量的参数,而不是O(a)。计算机科学家更喜欢后一种方式,即,
O(a+b)
表示法。不,那么它应该是正确的O(a+b),因为它们不是函数,因此代表不同树的顶点,不管它们的逻辑关系是什么(谈论>,@RickyMutschlechner,谢谢,但我不是在谈论
ab
。它是关于
O(a+b)
,我对平均运行时间的假设是正确的?@Yoar-首先,你认为O(a)和O(b)是不同的假设是不正确的。正如我已经提到的,两者都是相同的参数类型,即一个顶点——因此你的树成为顶点的函数,即O(n)。因此,O(a)=O(n),类似地,O(b)=O(n),因此,合并树意味着O(n)但是,即使你说你试着把它们看作两个不同的函数,那么输出将是O(A+B),A和B是相互独立的,因此A是不可比的。我希望你现在得到它!O(a)+o(a)是什么意思?
O(a+b) = O(n+log(n)) = O(n) = O(a).