数据结构考研题,时间复杂度

图片说明

 因为 while (x < n) 而 x = 2 * x
所以循环不多于 log2N 次
比如n=1000
第一次循环x=1第二次x=2,然后4 8 16 32 64 128 256 512,之后1024不满足条件退出。一共执行10次。
可以看见,2的((循环次数n)次方+1)<n是循环执行的条件,循环次数n写作T(n),则有2^T(n)<=n

将Tn理解为循环次数就是了