为什么两个O(N)方法被视为O(N)?

时间:2017-03-17 17:41:47

标签: java big-o

我有一个方法,在我的程序中调用另外两个具有线性时间复杂度的方法。我不确定这是否会导致该方法具有时间复杂度,如果O(2N)。

我知道常量会降低时间复杂度,这会使方法的时间复杂度为O(N),但我不是100%肯定。有人可以详细说明这样的方法会对时间复杂性产生什么影响以及如何?

2 个答案:

答案 0 :(得分:1)

从这个角度考虑:如果你消除了方法调用并且只有在该方法中运行它所需的代码,它的运行时是什么?

正如您正确推断的那样,您为O(N)的运行时运行两个线性时间运算(因为常量无关紧要)。这意味着整个方法的运行时复杂度为O(N)。

答案 1 :(得分:1)

你是对的,这个方法的时间复杂度是2n。但是,使用大O表示法时,不包括常量。因此,在大O表示法中,它将是O(n)。 Theta表示法包含常量,因此它将是theta(2n)