为什么这段代码给出了大O = O(1)

时间:2016-02-20 14:11:37

标签: big-o

public static LinkedList third(int[] array){
    LinkedList retval = null;
    for (int i = 0; i < 999 && i < array.length; i = i + 1) {
        retval = new LinkedList(array[i], retval);
    }
    return retval;
}

为什么这段代码给出了大O = O(1)?

1 个答案:

答案 0 :(得分:2)

因为循环将最多执行999次,这是一个常数值,因此您可以将其视为O(999)= O(1)= O(c),其中c是常数值。

如果i的值不受999的限制,则循环将执行array.length次,复杂度将为O(n),其中n是输入数组的大小。