我必须写下我必须为我的作业想出的算法的大 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++)
{
..
}
}
但是,对于另一个问题,我必须经过世界的下半部分,所以我的 y 循环减半。
int[][] world = new world[20][20];
for (int x = 0; x < 20; x++)
{
for (int y = 10; y < 20; y++)
{
..
}
}
我不太确定什么大 O 表示法适用于上述循环,是否仍然O(n^2)
是因为世界越大它仍然变得越慢?还是O(log n)
因为 y 减半了?