2D for循环的大O.

Kev*_*vin 2 java algorithm big-o

我必须写下一个算法的Big O表示法,我必须考虑我的作业.

我能说出下面的代码是O(n^2).因为对于每个x,我必须经历所有y,并且随着世界变大,它变得越来越慢.

int[][] world = new world[20][20];
for (int x = 0; x < 20; x++)
{
    for (int y = 0; y < 20; y++)
    {
        ..
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,对于另一个问题,我必须经历世界的下半部分,所以我的y循环减半.

int[][] world = new world[20][20];
for (int x = 0; x < 20; x++)
{
    for (int y = 10; y < 20; y++)
    {
        ..
    }
}
Run Code Online (Sandbox Code Playgroud)

我不太确定Big O符号适用于上述循环,是否还O(n^2)因为它变得越慢世界变得越大?或者是O(log n)因为y减半了?

Anu*_*san 10

它只是说,O(n*n/2)=O(n^2)因为常量不考虑在大O.