这个2循环算法的时间复杂度

时间:2015-10-01 18:29:11

标签: algorithm time-complexity

我如何理解此算法的时间复杂度?它在一次采访中出现,我认为是O(n ^ 2),但我的采访者说这是O(nlogn)。

for (int i=0; i<n; i++) {
    for (int j=i; j<n; j++) {
        if (A[i] + B[j] = 100) {
            return i, j;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

这个实现确实是O(n ^ 2),内部循环只节省了一半的计数,但是通过排序和线性迭代可以创建一个不同的版本O(n log n)。 鉴于100的常数,甚至有线性版本。为O(n * 100)