顺序算法的复杂性 - 最小后缀

时间:2014-03-25 19:10:06

标签: complexity-theory time-complexity

在顺序算法(非并行)中..

是在数组的每个后缀中找到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}

1 个答案:

答案 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