只执行一次的for循环的运行时间

时间:2017-03-17 22:20:46

标签: algorithm

鉴于 -

m=1,k=1
for(i=1,.....,k){
  for(j=1,....,i){
     m=m+1;
}
}

嗯,这次执行不会超过1次。我猜运行时间是theta(1)。我错了吗??

1 个答案:

答案 0 :(得分:0)

我认为你不应该考虑单个实例的时间复杂度(k = 1)。它应该是函数的时间复杂度,因为输入的大小增加(在你的情况下为k)。

如果我们按原样回答你的问题,那么你是对的as described here

  

但是,在无序数组中找到最小值不是a   作为对阵列中每个元素的扫描的恒定时间操作   需要以确定最小值。因此它是线性的   时间操作,花费O(n)时间。 如果已知元素数量   然而,事先并且不会改变,这样的算法仍然可以   据说可以在恒定的时间内运行

从本质上讲,这就是你似乎在问的问题。输入(k)的大小是预先知道的(1)并且不会改变,所以它是恒定的时间,如图所示。

如果你认为k可以改变,那么它就是一个不同的问题。为此,我引用了关于Time Complexity of nested for loop的stackoverflow的这个问题。