鉴于 -
m=1,k=1
for(i=1,.....,k){
for(j=1,....,i){
m=m+1;
}
}
嗯,这次执行不会超过1次。我猜运行时间是theta(1)。我错了吗??
答案 0 :(得分:0)
我认为你不应该考虑单个实例的时间复杂度(k = 1)。它应该是函数的时间复杂度,因为输入的大小增加(在你的情况下为k)。
如果我们按原样回答你的问题,那么你是对的as described here。
但是,在无序数组中找到最小值不是a 作为对阵列中每个元素的扫描的恒定时间操作 需要以确定最小值。因此它是线性的 时间操作,花费O(n)时间。 如果已知元素数量 然而,事先并且不会改变,这样的算法仍然可以 据说可以在恒定的时间内运行。
从本质上讲,这就是你似乎在问的问题。输入(k)的大小是预先知道的(1)并且不会改变,所以它是恒定的时间,如图所示。
如果你认为k可以改变,那么它就是一个不同的问题。为此,我引用了关于Time Complexity of nested for loop的stackoverflow的这个问题。