首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于程序的时间复杂度和频度的有关问题

2012-04-21 
关于程序的时间复杂度和频度的问题~麻烦求一下这两个程序段的频度和时间复杂度吧~~我的作业,错了~~~~~~~这

关于程序的时间复杂度和频度的问题~
麻烦求一下这两个程序段的频度和时间复杂度吧~~

我的作业,错了~~~~~~~
这个频度到底是什么意思哦???

(1)i=1;
while   (i <=n)
              i=i*2
(2)
              x=1;
              for   (i=1;i <=n;i++)
                  for   (j=1;j <=i;j++)
                      for   (k=1;k <=j;k++)
                                  x++;


[解决办法]
第一个时间复杂度是O(n),第二个是O(n*n*n).
频度不能通过理论计算出来,只能上机测试。你可以在程序前后加上:
long =System.currentTimeMillis();
然后把两个数相减就能得到时间频度
[解决办法]
第一个的时间复杂度是 O(logN)

第二个:
f(1)=1;
.....
f(n)=f(n-1)+n*(n+1)/2;

f(n)=1+2*((2+1)+1)/2+....+n*(n+1)/2;
近似于 1^2+2^2+3^2+....+n^2=(2n+1)(n+1)n/6
所以复杂度为O(N^3);


热点排行