嵌套n / 2的时间复杂度

时间:2018-10-16 03:33:11

标签: time-complexity big-o

我知道n的嵌套循环的时间复杂度为O(n ^ 2)。但是如果我有如下的嵌套循环,

for(i=0;i<n/2;i++)
  for(j=0;j<n/2;j++)
    ...
    ...

如何计算此代码的时间复杂度。也是O(n ^ 2)吗?如果是,怎么办?

1 个答案:

答案 0 :(得分:1)

  

也是O(n ^ 2)吗?如果是,怎么办?

是的。

您要做的就是计算迭代总数(乘积规则为None),并记住Big-O表示法会忽略常量。渐近分析会丢弃常数,因为 class CustomModule(nn.Module): def __init__(self): super(CustomModule, self).__init__() # Initialize self._modules as OrderedDict self.conv1 = nn.Conv2d(1, 20, 5) # Add key conv1 to self._modules self.conv2 = nn.Conv2d(20, 20, 5) # Add key conv2 to self._modules 趋于无穷大时它们无关紧要。换句话说,n/2 * n/2 = n^2 / 4n都是线性函数,尽管f(n) = n的增长速度快于g(n) = 2n。渐进分析只在乎增长率的类别。

另请参阅: