繁体   English   中英

该算法的时间复杂度是多少?

[英]What is time complexity of this algorithm?

假设我们有一个数组w ,其中包含n整数。 通过以下定义和以下伪代码,请告诉我wrt n算法的时间复杂度是多少:

idx[i] = max(j) : 1 <= j < i and w[j] < w[i]

alg:
Data: w : array of integers - idx: a pointer to maximum index with the less value.
Date: w is 1based

idx[1] = -1
for i=: 2 to n do
  j=i-1
  while w[j] > w[i] and j <> -1
  {
    j = idx[j]
  }
  idx[i] =j
end

您在这里有2个循环-

  1. 循环for loop运行n次。 因此它的O(n)。
  2. 第二个循环while loop每次从(i-1) + (i-2) + (i-3) + .... + (in) 它运行(n-1)次。 所以O(n)。

合并为O(n^2)算法。 其他操作是恒定时间或O(n)时间,因此可以忽略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM