两个JAVA问题,求大神解答
A、
循环执行n次,时间复杂度为O(n)。
乙、
for(int I = 0;我& ltn;i++)
for(int j = 0;j & ltn;j++)
第一个周期是每1次,第二个周期是n次,第一个周期是每***n次,那么这个周期总是***n?时间
for(int I = 0;我& ltn;i++)
for(int j = 0;j & lt我;j++)
这个循环执行1+2+...+n=(1+n)n/2次。
总周期n?+(1+n)n/2次,时间复杂度为O(n?)。
丙、
for(int I = 1;我& lt= n;i*=2)
for(int j = 1;j & lt= n;j++)
第一个循环是每1次,第二个循环是n次,第一个循环是每***log2n次,所以这个循环总是***nlog2n次,时间复杂度是O(nlog2n)。
d、
for(int I = 1;我& lt= n;i*=2)
for(int j = 1;j & lt= I;j++)
这个循环执行1+2+...+log2n = (1+log2n) log2n/2次,时间复杂度为O(n)。