社区
数据结构与算法
帖子详情
for(i=1;i<=n;i++) for(j=2*i;j<=n;j++)的时间复杂度是?
烧饼兽
2013-01-07 12:06:36
for(i=1;i<=n;i++) for(j=2*i;j<=n;j++)的时间复杂度 是什么?
是O(n*n)还是O(n*log(n))? 求详细解释,最好能用数学证明下。
...全文
6609
3
打赏
收藏
for(i=1;i<=n;i++) for(j=2*i;j<=n;j++)的时间复杂度是?
for(i=1;i<=n;i++) for(j=2*i;j<=n;j++)的时间复杂度 是什么? 是O(n*n)还是O(n*log(n))? 求详细解释,最好能用数学证明下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
烧饼兽
2013-01-07
打赏
举报
回复
哦,原来如此。谢谢两位,忘记等差数列这个好东西了
yel_hb
2013-01-07
打赏
举报
回复
3
对于内层循环,次数是n - 2 * i + 1, 对于外层循环,i范围其实是1 - n / 2 (在后面的内层循环直接跳出),累加和为 ((n - 2 * 1 + 1) + (n - 2 * n / 2 + 1)) * (n / 2) / 2 (等差数列求和公式) 得出时间复杂度 O ( n * n )
FancyMouse
2013-01-07
打赏
举报
回复
O(n^2) 公式是n+(n-2)+(n-4)+...,一共[n/2]个。当n为偶数的时候它就是2+4+6+...+n=n*(n+2)/4。
MoreWindows白话经典算法之七大排序(高清版)
这是本人在研一上课时所整理的文档,包括冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法,这些文章不仅使我在考试中取了不错的成绩,也为后来顺利面过迅雷,腾讯,微软打下了良好的基础,现在整理成电子书形式,希望能对大家有所帮助。
数据结构---三重循环的语句频度
题目 计算下列程序段种x = x + 1;的语句频度。 for( i = 1 ; i <= n ; i
++
) for( j = 1 ; j <= i ; j
++
) for( k = 1 ; k <= j ; k
++
) x = x + 1; (出自:《数据结构——用C语言描述》(第二版) 耿国华著) 首先我们看另一个题目:执行下面程序,求语句S的执行次数。 for( i = 1 ; i <= n ; i
++
) //设为语句1 for( j = 1 ;
main() { int i,b,k=0; for(i=1;i<=5;i
++
) { b=i%2; while(b-->=0) k
++
;
main() { int i,b,k=0; for(i=1;i<=5;i
++
) { b=i%2; while(b–>=0) k
++
; } printf("%d,%d",k,b); } A)3,-1 B )8,-1 C)3,0 D)8,-2 i=1:b=i%2=1;while执行2次,k=2; i=2:b=i%2=0;while执行1次,k=3; i=3:b=i%2=1;while执行2次,k=5; i=4:b=i%2=0;while执行1次,k=6; i=5:
时间复杂度
一、概念
时间复杂度
是总运算次数表达式中受n的变化影响最大的那一项(不含系数) 比如:一般总运算次数表达式类似于这样: a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+f a ! =0时,
时间复杂度
就是O(2^n); a=0,bO(n^3); a,b=0,cO(n^2)依此类推eg:(1) for(i=1;i //循环了n*n次,当然是O(n^2) f
时间复杂度
(详解!!!)
分析算法
时间复杂度
的基本方法 1. 找到执行次数最多的语句 (语句频度最高的) 2. 计算语句执行次数的数量级 3. 用大O来表示结果 首先,学会查找语句频度最高的语句,往往是循环最内部的语句; for( int k = O;k < n;k
++
) 语句频度为n次 x
++
; 语句频度为1次 for( int i= 0;i < n;i
++
) 语句频度为n次 for(int..
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章