Big o 如果一个函数内部有2个for循环(不是嵌套的),那么整个函数的bigOh仍然是O(n)吗?
函数中有不同的循环不会导致BigOh相乘,对吗 例如: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。
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
。