Javascript 同一范围内的多个for循环如何影响程序';什么是大O符号?

Javascript 同一范围内的多个for循环如何影响程序';什么是大O符号?,javascript,big-o,Javascript,Big O,比如说我有一个类似这样的程序: var foo = 10; for(var i = 0; i < foo; i++){ console.log('first loop'); } for(var j = 0 j < foo; j++){ console.log('second loop'); } var foo=10; 对于(变量i=0;i

比如说我有一个类似这样的程序:

var foo = 10;

for(var i = 0; i < foo; i++){
    console.log('first loop');
}

for(var j = 0 j < foo; j++){
    console.log('second loop');
}
var foo=10;
对于(变量i=0;i
现在,根据我对大O表示法的一般理解,我们根据N输入的大小来衡量程序的效率(即运行所需的时间)。因此,如果“j”循环嵌套在“i”循环中,这将使其成为n^2,但由于两个循环都在同一范围内,运行时仍然是O(n)。这个评估正确吗

是的,这是正确的

我想指出的是,“跑步需要多长时间”这个短语对于大O来说并不是100%准确

描述当参数趋向于特定值或无穷大时函数的限制行为。

是的,没错

我想指出的是,“跑步需要多长时间”这个短语对于大O来说并不是100%准确

描述当参数趋向于特定值或无穷大时函数的限制行为。


这仍然是线性搜索,O(N),因为两个循环根本不相互作用

从技术上讲,数组访问是常数O(1),它是时间上线性的搜索


O表示法基本上用于测量算法的复杂性,范围在这里并不重要。

这仍然是线性的,因为两个循环根本不相互作用

从技术上讲,数组访问是常数O(1),它是时间上线性的搜索


O表示法基本上用于测量算法的复杂性,范围在这里并不重要。

是的,您的假设是正确的

在这两个循环中完成的基本操作是

  • 循环1,迭代1
  • 循环1,迭代2
  • 循环1,迭代10
  • 循环2,迭代1
  • 循环2,迭代10
对于顺序为N的每个循环,都有N个写操作


因此,总时间复杂度将为O(N)+O(N),但由于忽略了常数,因此复杂度为O(N)

是的,您的假设是正确的

在这两个循环中完成的基本操作是

  • 循环1,迭代1
  • 循环1,迭代2
  • 循环1,迭代10
  • 循环2,迭代1
  • 循环2,迭代10
对于顺序为N的每个循环,都有N个写操作

因此,总的时间复杂度将是O(N)+O(N),但由于忽略了常数,因此复杂度是O(N)

,他指的是“范围”表示循环不是嵌套的,而是独立的
O(N) + O(N) = O(N)
O(N) + O(M) = O(max(N,M))