11智能在线
新记
程序段i=1;while(i<=n)i=i*2;的时间的复杂度是(?)
如题所述
举报该文章
相关建议 2019-05-30
你可以分析i,和循环次数之间的关系
i = 1, 2, 4, 8, 16 ...
所以假设循环次数是x。
那么i = 2^x
条件是i <= n
2^x <= n
所以x <= logn
所以x 从1 到logn,一共执行循环体logn次,所以复杂度是logn
温馨提示:内容为网友见解,仅供参考
当前网址:
https://11.t2y.org/zz/4f4ssq4q2p87ppvvq2.html
其他看法
第1个回答 2019-05-30
假设循环次数是x。
i = 1, 2, 4, 8, 16 ,i = 2^x
条件是i <= n
2^x <= n
所以x <= log2n 一共执行循环体log2n次,所以复杂度是O(log2n)
相似回答
大家正在搜
相关问题
i=1; while (i<=n) i=i*2 时间复杂度
i=1; while(i<=n) i=i*2; 问时间复杂度...
i=1; while(i<=n) i=i*2 这个算法的时间...
下面程序段的时间复杂度是 ? i=1; while(i<=n...
程序段“for(i=1; i<=n;) i=i*2;”的时间...
面程序段的时间复杂度是( ) i=1; while(i<=n...
i=i+1; while(i<=n) i=i*2;分析一下这...
求i=1; while(i<=n); i=i+2;的时间复杂...