让我们说在Java中我声明了一个新变量: int k = 0; 这是否会计入O符号,或者我是否将其忽略为O符号?
答案 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)的复杂性,因为它是在恒定的时间内执行的。但是,如果有任何计算需要为变量提供任何值,那么应该考虑该计算的复杂性。
希望这会有所帮助:)