二维阵列的线性算法

时间:2020-06-03 22:16:36

标签: arrays algorithm big-o

我有一个一维数组A,其中填充了整数(A[0]A[n])。我被问到设计一种线性算法,该算法可以生成一个二维数组B,其中B[i][j] = A[i] + ... + A[j]代表0 <= i < j <= n。因此,这意味着我需要遍历对角线上方的所有元素,因此(n-1) x n x (1/2)元素也是如此O(n^2)。我通过以下方法开始了我的算法(伪代码):

for i=0 to n-1:
    for j=i+1 to n:
        // do calc

但是这已经是O(n^2)了,线性时间甚至可能吗?

1 个答案:

答案 0 :(得分:0)

当您要填充大小为n^2的2D数组时,算法的时间复杂度为Omega(n^2)。因此,在当前规范下无法在线性时间内运行该算法。

相关问题