[英]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个循环-
for loop
运行n次。 因此它的O(n)。 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.