在函数内部有不同的循环不会导致 BigOh 相乘,对吗?
例子:
function() {
for(int i = 0; i < n; i++) {
//logic here
}
for(int i = 0; i < n; i++) {
//logic here
}
}
在函数内部有不同的循环不会导致 BigOh 相乘,对吗?
例子:
function() {
for(int i = 0; i < n; i++) {
//logic here
}
for(int i = 0; i < n; i++) {
//logic here
}
}
对此进行了很好的讨论(即一般参考),但是是的,您是正确的,您在问题中拥有的功能将是 O(n)。
技术上 O(2n) 减少到 O(n)
是的,它仍然是 O(n),因为你会有 O(n+n),即 O(2n),但我们可以忽略 2,因为它的影响可以忽略不计。但如果你有
for (...){
for(...){
//code here
}
}
那么它将是 O(n^2)
请参阅有关堆栈溢出的这篇文章,其中解释了为什么它的 O(N)。