在C++中的for循环中继续instr和Time Complexity

Continue instr. and Time Complexity in a for loop in C++

本文关键字:instr Time Complexity 继续 C++ 中的 for 循环      更新时间:2023-10-16

我想知道。。。。C++中for循环中的函数"continue"如何影响函数的时间复杂性,例如:

for( int i(0); i < size; i++)
{
    if( array [i] == i ) continue;
    while( j < array[i]/3 )
    {
        array2[j] = array [i];
        j += 2;
    }
}

如果您打算将时间复杂性设置为大O,那么您对最坏的情况感兴趣,那么您应该假设永远不会触发"continue"。

如果你正在寻找大O,那么忽略所有常数,你必须考虑最坏的情况。

本例中的continue不影响大O,因为您必须考虑到以前的if条件从未通过的可能性。因此您有O(n*m)

如果内部循环从不输入,则最佳情况的结果将是O(n)if ... continue对这个值也没有任何影响(尽管它可能会导致它更频繁地出现)。如果没有if ... continue,那么j < array[i]/3永远不会成立。因此,内循环永远不会进入,从而使外循环的主体成为O(1),从而给出具有或不具有continueO(n)