两个for循环之间的长度差异如何影响性能



两个for循环之间的长度差异如何影响性能?我知道当使用for循环时,性能是O(n(。但是,性能是如何随着for循环长度的变化而变化的呢?它的复杂性增加了吗?

示例a:

for(int i=1;i<10;i++){
do something...
}

示例b:

for(int i=1;i<5;i++){
do something...
}

这不是for循环,而是变量增加或减少的速度将决定循环的复杂性。

for(int i=0;i<n;i*=2){
do something;
}

这是O(logn(

for(int i=0;i<n;i++){
do something;
if(some condition)
i = 0;
}

这可能是O(n^2([或者甚至是无限循环],即使是一个循环。

现在,如果循环的长度是另一个动态变量的函数,则性能会受到影响。如果长度变化是恒定的,那么就不会改变。

最新更新