在顺序算法(非并行)中..
是在数组的每个后缀中找到min的最佳复杂度是O(nlogn)?它可能是O(n)吗?如果不?为什么呢?
INPUT:
array={x1,x2....xn}
OUTPUT:
X= {min(x1,x2....xn),min(x2....xn),(x3,x4....xn)...........min(xn-1,xn),xn}
答案 0 :(得分:6)
使用事实
min(x1,x2,...,xn) = min(x1,min(x2,x3,...,xn))
您可以看到您可以使用DP算法来解决X
中的O(n)
<强>伪代码强>
Min-Suffixes(input)
n = input.length
let output = new array of size n
output[n] = input[n]
for i = n-1 to 1
output[i] = min(output[i+1],input[i])
return output