算法入门基础,搜索过很久了,一直找不到答案

程序段“i=1;while(i<=n) i=i*2;”的时间复杂度为T(n)=O(log2n),当n=4时T(n)=2,可while循环实际执行了3次。这是咋回事,求解。

不用在意这些细节,O表示法只是一个近似值,并不准确

这不简单吗?n<=4,这是小于等于并非单单小于,实际while停止的时候n是8啊。这样都要去纠结,纠结就纠结了,你又不细心,真难理解。

T(n)=O(log(2,n))的意思是说,当n->∞时,k1 * log(2,n)<T(n)<k2 * log(2,n) 其中k1,k2是正数