Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个代码给出big-O=O(1) 公共静态链接列表第三(int[]数组){ LinkedList retval=null; 对于(int i=0;i_Big O - Fatal编程技术网

为什么这个代码给出big-O=O(1) 公共静态链接列表第三(int[]数组){ LinkedList retval=null; 对于(int i=0;i

为什么这个代码给出big-O=O(1) 公共静态链接列表第三(int[]数组){ LinkedList retval=null; 对于(int i=0;i,big-o,Big O,为什么这段代码会给出big-O=O(1)?因为循环最多执行999次,这是一个常量值,因此您可以将其视为O(999)=O(1)=O(c),其中c是一个常量值 如果i的值不受999的限制,则循环将执行array.length次,复杂性为O(n),其中n是输入数组的大小 也许因为我不是999,但它应该是O(999),它“应该”不是O(999)(冗余符号)O(999)如果使用Big-O-notation的形式化定义来分析这个算法,就像任何其他算法一样,自然会减少到O(1)。To OP:例如,参见“正式”

为什么这段代码会给出big-O=O(1)?

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


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

也许因为我不是999,但它应该是O(999),它“应该”不是
O(999)
(冗余符号)
O(999)
如果使用Big-O-notation的形式化定义来分析这个算法,就像任何其他算法一样,自然会减少到
O(1)
。To OP:例如,参见“正式”分析常数函数的渐近行为(一种分析,其本身非常冗余,但可能对学习有价值)。将链接答案中的
f(n)=4
替换为
f(n)=999
,您将很快得出结论,上面的算法是在恒定时间内运行的,即
O(1)
。非常感谢。您帮了我很多忙。
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;
}