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

Algorithm 只执行一次的for循环的运行时间,algorithm,Algorithm,给定- 好吧,这将执行不超过1次。我猜运行时间是θ(1)。我错了吗 我认为您不应该考虑单个实例的时间复杂性(k=1)。它应该是函数的时间复杂度随着输入大小的增加而增加(在您的例子中是k) 如果我们认为你的问题是正确的,那么你是对的 但是,在无序数组中查找最小值并不是一件容易的事情 当扫描阵列中的每个元素时,需要执行恒定时间操作 需要确定最小值。因此它是线性的 时间操作,需要O(n)时间如果元素的数量已知 但是,这种算法仍然可以 可以说是在恒定的时间内运行 本质上,这就是你似乎在问的问题。输入(k

给定-


好吧,这将执行不超过1次。我猜运行时间是θ(1)。我错了吗

我认为您不应该考虑单个实例的时间复杂性(k=1)。它应该是函数的时间复杂度随着输入大小的增加而增加(在您的例子中是k)

如果我们认为你的问题是正确的,那么你是对的

但是,在无序数组中查找最小值并不是一件容易的事情 当扫描阵列中的每个元素时,需要执行恒定时间操作 需要确定最小值。因此它是线性的 时间操作,需要O(n)时间如果元素的数量已知 但是,这种算法仍然可以 可以说是在恒定的时间内运行

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


如果你认为K可以改变,那么这是一个不同的问题。为此,我建议您参考有关stackoverflow的此问题。

与您的问题相关的任何代码都应该在问题本身中。不要让人们访问外部资源。另外,代码应该是文本,而不是图像。我是新来的。。。附件中的图片似乎不是自动显示的。请将代码(作为文本)粘贴到您的问题中。现在很清楚,我希望您不应该考虑单个实例的时间复杂性(k=1)。它应该是函数的时间复杂度随着输入大小的增加而增加(在您的例子中是k)。
m=1,k=1
for(i=1,.....,k){
  for(j=1,....,i){
     m=m+1;
}
}