Big-O如果内部for循环以数字=> 1开头

use*_*525 1 big-o

我试图了解如果内部循环不是从0开始,而是1,2,3或更多,那么big-o符号是否会改变.

例如,它改变了这个内部for循环从3开始的任何东西,还是大的o仍然是n平方?

for(int i = 0; i < n; i++)
    for(int j = 3; j < n; j++)
Run Code Online (Sandbox Code Playgroud)

当我在它的时候,我不妨问一下,如果i或j在每次迭代中增加3,它是否会有所不同.谢谢你的帮助!

Bid*_*dou 5

有关大O的解释,请参阅"大O"符号的简单英语解释是什么?

关于你的具体问题:

情况1

for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
Run Code Online (Sandbox Code Playgroud)

有复杂性

  • o(n 2)因为你正在做n · n次操作
  • O(n 2)

案例2

for(int i = 0; i < n; i++)
    for(int j = 3; j < n; j++)
Run Code Online (Sandbox Code Playgroud)

有复杂性

  • o(n 2 - 3n)因为你正在做n ·(n - 3)次操作
  • O(n 2)

案例3

for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j*=3)
Run Code Online (Sandbox Code Playgroud)

有复杂性

  • o(n 2/3)因为你正在做n ·(n/3)次操作
  • O(n 2)