题目72:如下程序的时间复杂度为(其中m>1,e>0)()
x = m;
y = 1;
while (x - y > e)
{
x = (x + y) / 2;
y = m / x;
}
print(x);
A:log mB:m的平方
C:m的1/2方
D:m的1/3方
解析:
1.x=(x+y)/2=(m+1)/2 m非常大,则 x=m/2;
y=m/x, x=m/2 则 y=2;
2.x=(x+y)/2=(m/2+2)/2=m/4+1 m非常大,则 x=m/4;
y=m/x, x=m/4 则 y=4;
3.x=(x+y)/2=(m/4+4)/2=m/8+2 m非常大,则 x=m/8;
y=m/x, x=m/8 则 y=8;
.........