假设我们有一个for循环,该循环从0一直到变量变量n除以100(或某个常数),在这种情况下,Big-O表示法是什么?
与其他情况不同,如果我们增加n,则程序的运行时间将更快。同样,相反的情况也存在问题,如果我们减小n,我们的程序就会越来越大,这与Big-O表示法的本质无关。
for( int i = 0; i < 100 / n ; i ++ );
正如我提到的,很明显我得到了与预期相反的结果。 (随着n增加,程序执行得更快,随着n减小,程序执行得更慢)
答案 0 :(得分:0)
由于循环正以固定值(100)运行,因此运行时间将为O(1)
不变,这是由于给定n >= 1
。
如果n是一个正分数,则有可能使循环更长,因此在这种情况下,我认为运行时间是O(1/n)
(给定0 < n <= 1
)。
答案 1 :(得分:0)
如到目前为止所收到的答案和注释所指出的那样,程序的运行时间肯定是O(1)。但这并不严格。从相同的意义上说,线性搜索的运行时间是O(n 2 )以及O(2 n )。
程序运行时的上限是O(1 / n)。实际上,您的程序的运行时为Θ(1 / n)。