在C++中的for循环中继续instr和Time Complexity
Continue instr. and Time Complexity in a for loop in C++
我想知道。。。。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)
,从而给出具有或不具有continue
的O(n)
相关文章:
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 为什么我会收到"Run-Time Check Failure #2 - Stack around the variable 'pr' was corrupted"错误?
- 解析某些行的文本和输出"time of appearance"
- 返回time()库函数的数据类型
- 如何将 time-uuid(存储在 boost uuid 中)转换为时间戳/自纪元以来的时间?
- 如何从 boost::p osix_time::p time 获取秒数
- 调用 dll 函数时"Run-Time Check Failure #0 - The value of ESP"
- C++ SRAND(time(0)) 在猜谜游戏中不起作用
- 即使包含 <time.h 后仍"‘CLOCK_PER_SEC’ was not declared in this scope"错误>
- struct TM time;vs TM time = {}.输出相同但不相同?
- 使用 Windows 寄存器查找下一个"Daylight Saving Time"
- c++ get millsecond time
- "Feature X requires run-time support"的含义是什么?
- 如何传递以 "size determined at run time" 作为引用的动态分配数组?
- constexpr - "Evaluate value at compile time"到底是什么意思?
- "Time"库形式 Arduino 显示不正确的值
- 自定义 Python 构建 - time.so:未定义的符号:PyExc_ValueError
- C++名称查找来自 <time.h 的函数>
- 为什么即使我反复重置它,srand(time(NULL))也能顺利工作
- 在C++中的for循环中继续instr和Time Complexity