for循环有多贵?

The*_*ony -3 java performance for-loop if-statement while-loop

问题是要求比较成本forwhile循环,相对于if陈述的成本.

假设if语句的相对成本为1,for和while循环的相对成本是多少?

假设在比较时将单个布尔值传递给while循环和if语句,并while允许迭代X次.假设它for也迭代X次.

Law*_*llo 9

在性能方面,if语句通常具有O(1)复杂度,其中as forwhile循环通常为O(n),其中n是取决于条件的循环量.例如:

for (int i = 0; i < 100; i++)
{
    // Some statements
}
Run Code Online (Sandbox Code Playgroud)

将是O(100),因为它循环了100次.除非在初始循环中有额外的for循环,否则循环中有多少语句无关紧要.然后你得到O(n ^ 2)复杂度,这是二次的,因此非常低效.

但是,不要让这吓到你.循环存在是有原因的,并且在许多程序中它们是必需的.