Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 如果一个函数内部有2个for循环(不是嵌套的),那么整个函数的bigOh仍然是O(n)吗?_Big O - Fatal编程技术网

Big o 如果一个函数内部有2个for循环(不是嵌套的),那么整个函数的bigOh仍然是O(n)吗?

Big o 如果一个函数内部有2个for循环(不是嵌套的),那么整个函数的bigOh仍然是O(n)吗?,big-o,Big O,函数中有不同的循环不会导致BigOh相乘,对吗 例如: function() { for(int i = 0; i < n; i++) { //logic here } for(int i = 0; i < n; i++) { //logic here } } function(){ 对于(int i=0;im。

函数中有不同的循环不会导致BigOh相乘,对吗

例如:

function() {
    for(int i = 0; i < n; i++) {
        //logic here
    }

    for(int i = 0; i < n; i++) {
        //logic here
    }
}
function(){
对于(int i=0;i
这是一个很好的讨论(即一般参考),但是是的,您是正确的,您在问题中的函数是O(n)

从技术上讲,O(2n)会减少到O(n)

是的,它仍然是O(n),因为你会有O(n+n),这就是O(2n),但是我们可以忽略2,因为它的影响可以忽略不计。但是如果你有

for (...){
  for(...){
    //code here
  }
}

然后是O(n^2)

请参阅这篇关于堆栈溢出的文章,其中解释了O(n)的原因


如果两个循环中的迭代次数不同,会发生什么情况?例如,第一个循环被迭代
m
次,第二个循环被迭代
n
次,其中
n>>m