Is this a O(n)?



这方面的时间复杂度是多少?什么是Big-O?

int sum = 0;

for (int i = 0; i<= 20; i+=2)
for (int j = 0; j<= i; j++)
sum+= 2i * j ;
System.out.println (sum);
System.out.ptintln(“I = ” + i + “ J = ” + j);

由于没有任何东西依赖于任何输入,并且迭代次数总是固定的,因此这具有恒定的时间复杂性或O(1(。渐近运行时复杂度始终是函数的一个属性,用于描述操作数如何随输入大小而变化。

没有输入,函数总是需要相同的时间来执行,因此为O(1(。

  • 函数执行相同的操作,而不考虑其输入:O(1(
  • 当输入加倍时,函数运行的时间是原来的两倍:O(n(
  • 当输入加倍时,函数运行速度慢4倍:O(n²(
  • 函数执行更多的操作,但比您期望的N要少:通常为O(logn(

由于主循环的迭代不会随着输入的变化而急剧增加/减少,因此代码为O(N(。

你可以给I<20迭代器,并且迭代将线性增长

相关内容

最新更新