【发布时间】:2020-05-01 09:16:07
【问题描述】:
如果我有这样的循环:
for(int i=0;i<n;i++)
{
if(i%2==0)
{
// do something
}
}
如果 // do something 代码的时间复杂度是线性的,那么时间复杂度是多少。
【问题讨论】:
-
if对复杂性类没有影响,因为它在O(1)本身中执行,只会将// do something的执行减少一半。如果您查看 big-o 的数学定义,常量因子不会起作用,因此0.5不会改变此代码在O(n * k)中运行的事实,其中k是// do something的复杂度。
标签: algorithm time complexity-theory