确定最坏情况下的时间复杂度。 (显示计算)
int i = 1;
int j = 4;
while (i<(n*n)&& j<(n*n*n*n)){
if (i%3 == 0) i+=3;
else i+=4;
if (j%2 == 0) j*=4;
else j*=2;
}
答案 0 :(得分:1)
在最坏的情况下,这将以最快的方式运行,最快达到n ^ 2或j达到n ^ 4。变量i线性增加,j每次迭代指数增加。 j正在成为每次迭代4次的不同力量。
在n ^ 2/3次迭代后,我将达到n ^ 2,即O(n ^ 2)。 在log_4 n ^ 4次迭代之后,j将达到n ^ 4(其中log_4是log base 4)。
所以问题是哪个更大n ^ 2或log(n ^ 4),答案是响亮的n ^ 2.
因此该算法为O(n ^ 2)