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
因此,总时间复杂度将为O(N)+O(N),但由于忽略了常数,因此复杂度为O(N)是的,您的假设是正确的 在这两个循环中完成的基本操作是
- 循环1,迭代1
- 循环1,迭代2
- 循环1,迭代10
- 循环2,迭代1
- 循环2,迭代10
O(N) + O(N) = O(N)
O(N) + O(M) = O(max(N,M))