int i=1,n=100;
while( i<n )
{
i=i*2;
}
由于每次i*2之后,就举例n更近一步,假设有x个2相乘后大于或等于n, 则会退出循环。
于是由 2^x=n 得到 x=log(2)n, 所以这个循环的时间复杂度为O(logn)。
int i=1,n=100;
while( i<n )
{
i=i*2;
}
由于每次i*2之后,就举例n更近一步,假设有x个2相乘后大于或等于n, 则会退出循环。
于是由 2^x=n 得到 x=log(2)n, 所以这个循环的时间复杂度为O(logn)。