它是否具有相同的复杂性,因为它们是以常数乘数变化的,还是应该是n ^ 3和n ^ 2并进行比较?
答案 0 :(得分:4)
对于'BigOh'表示法,常数乘数确实无关紧要。它所做的就是它给出了运行时间复杂度的顺序。 你可以考虑这个小例子: 假设您有3 * 100 = 300个苹果和2 * 100 = 200个苹果。当然,300!= 200,但两者的顺序相同,即数百个。
因此,通过相同的方式,3(log n)!= 2(log n),但3(log n)和2(log n)都是log n的顺序,即O(log n)
答案 1 :(得分:1)
是。乘以常数并不重要。两者都只是O(log n)
。
事实上,这是big-o符号定义的一部分。如果一个函数可能被n中的多项式所限制,那么当n倾向于无穷大时,你可以忽略多项式的低阶项。
答案 2 :(得分:0)
两者都相当于O(log n)。常数不会改变复杂性。
答案 3 :(得分:0)
Big O notation由所有上限函数的集合定义。
话虽如此,同样重要的是要注意Big O可以在数学上定义为:
O(g(n)) = {f(n): f(n) < c·g(n), c being some arbitrary constant}
正如你所看到的,这个常数在Big O中并不重要;我们不在乎 是否有效。因此,3logn
和2logn
都可以描述为O(logn)
。