Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 在大Oh记数法中,最坏的运行时间是什么_Algorithm_Time Complexity - Fatal编程技术网

Algorithm 在大Oh记数法中,最坏的运行时间是什么

Algorithm 在大Oh记数法中,最坏的运行时间是什么,algorithm,time-complexity,Algorithm,Time Complexity,对于下面的函数,在大Oh符号中最坏的运行时间是多少?有人能解释一下原因吗?谢谢 test{ int counter = 0; for int(i=0; i<5000;++i){ counter += i; for(j=0;j<n;++j){ ... } for(k=0;k<i;++k){ ... } } } 测试{ int计

对于下面的函数,在大Oh符号中最坏的运行时间是多少?有人能解释一下原因吗?谢谢

test{
int counter = 0;

    for int(i=0; i<5000;++i){
    counter += i;
    
        for(j=0;j<n;++j){
        ...
        }
    
        for(k=0;k<i;++k){
        ...
        }
    
    }

}
测试{
int计数器=0;

for int(i=0;i5000是一个常数,所以它并不重要。唯一重要的是for循环中有n,所以这是O(n)。

Big-O表示法告诉您,算法的缩放速度与函数相同或较慢

  • O(N)意味着,如果输入的数据是原来的10倍,则所需的时间将是原来的10倍或更少

  • O(N^2)表示数据多10倍时,其长度等于或小于100倍

你的输入是
n
i
在一个costant循环上。因此你的复杂性是O(n),因为
n
在一个for循环中,所以它是线性扩展的,除非你在另一个循环的某处使用
n


你可能已经注意到“或更少”,你可能会说所有的O(N)算法因此也是O(N^2)或者更糟的是,这在技术上是正确的,但是没有帮助。这就是为什么你会选择最快的大O表示法来表示一个好的近似值。

大O表示法谈论与n成比例的运行时间。在这里,除了一个内有n的循环外,所有循环重复相同的次数。因此,只有内部循环的运行时间发生变化当n改变时为s,因此为O(n)。

这是有意义的。谢谢。因为Big-O是上界,所以函数也是O(n^2),但它是有意义的,因为答案应该是函数最接近的时间复杂度。