99问答网
所有问题
数据结构时间复杂度问题
题目是:i=1;k=0;
do{k+10*i;
i++;
}while(i<=n-i);
求解和分析
举报该问题
推荐答案 2011-09-06
如果循环条件是i <= n - i,则退出条件为2i > n;
对于整数就是2i 为n +1 或者n+2时退出,
因为循环体中执行一次i加1,执行完第m次循环时,i的值为m +1,
如果此时退出循环,列出算式就是:2(m+1)>n
得到m > n / 2 - 1,由于是整数,因此m为(n/2)-1 之后上取整就可以了
去掉所有的常量后,时间复杂度当然还是O(n)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/zW7BejvWO.html
其他回答
第1个回答 2011-09-06
循环退出条件为2i >= n;
看循环体中,每次循环i增加一,第一个循环完后i为2,第二次循环完后i为3
于是第n/2次循环后2i的值为n,正好退出循环
因此执行次数n/2,时间复杂度为O(n)
第2个回答 2020-03-06
您的浏览器不支持HTML5视频
第3个回答 2011-09-06
不知道循环体的第一句什么意思,如果忽略它的话,就是楼上两位的答案了。。。
第4个回答 2011-09-20
O(N)
相似回答
大家正在搜
相关问题
数据结构时间复杂度问题
数据结构时间复杂度怎么求?
数据结构时间复杂度问题
数据结构时间复杂度的问题
数据结构时间复杂度的问题?
数据结构时间复杂度的问题
数据结构的时间复杂度问题
数据结构 时间复杂度问题