首页 > 解决方案 > 两个 for 循环之间的长度差异如何影响性能?

问题描述

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

示例一:

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

示例 b:

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

标签: javaalgorithmperformance

解决方案


这不是 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) [甚至无限循环]。

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


推荐阅读