void function(int N){
int c=0;
for (int i =0; i< N; i+= N/5)
c++;
}
以上的大O是什么?因为对于每N个循环将迭代5次,它是否是O(1)?
答案 0 :(得分:1)
因为对于每N个循环将迭代5次,它是否是O(1)?
正。运行时间仅取决于常数 - 5 - 因此它受O(1)限制。
答案 1 :(得分:1)
假设例如N = 100
。我们画一张桌子:
Iteration | i
----------+------
0 | 20
1 | 40
2 | 60
3 | 80
4 | 100
请注意,选择N
的值无关紧要,迭代次数最多为5次。
因此,我们得出结论,i
不依赖于N
。
所以..你是对的,它是O(1)
。
上述示例和循环之间有什么区别:for(i=0;i<N;i+=20)
?
如果你画桌子,你会得到同一张桌子!但是,在这种情况下,结果执行取决于N
的值。如果您选择N = 200
,您将获得超过5个。因此,此案例的结果将是O(N)
。
答案 2 :(得分:0)
是的,结果不依赖于N.
答案 3 :(得分:0)
正式回答您的问题如下: