声明变量是否计入大O符号?

时间:2018-04-23 09:42:54

标签: java big-o complexity-theory

让我们说在Java中我声明了一个新变量: int k = 0; 这是否会计入O符号,或者我是否将其忽略为O符号?

3 个答案:

答案 0 :(得分:2)

Big O表示法忽略常量。

int k = 0;

是一个单一的常量变量(就内存而言)。

但是跟随循环会有O(n)复杂度

for(int k=0;k<n;k++){}

因为它会运行k++ n次。

答案 1 :(得分:1)

声明这样的变量不应该:

int k;

像这样分配:

k = 0;
像这样的初始化会同时做到这两点,所以它会计算:

int k = 0;

请注意,即使是最后一个也只会提供一个常数因子(将被忽略),除非它在某个循环中执行。

答案 2 :(得分:1)

O表示法用于衡量代码的复杂性。这意味着它执行的语句数量。如果你在另一个循环中使用嵌套循环一个循环,那么复杂度是O(n ^ 2),因为每次迭代对应于一个n,并且因为一个循环在另一个循环内,所以n ^ 2可以是相关的。但是你的代码只是简单地初始化一个变量,所以它可以被认为是O(1)的复杂性,因为它是在恒定的时间内执行的。但是,如果有任何计算需要为变量提供任何值,那么应该考虑该计算的复杂性。

希望这会有所帮助:)