幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2638|回复: 3

[通用编程] 关于数据结构中的时间复杂度问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-4-15 09:19:20 | 显示全部楼层 |阅读模式
定义是说通常把算法中所包含的简单操作次数称为算法的时间复杂度,其通常用 O(1),O(n),
O(n!)等形式表示,而其中如果运行时间与n成正比,其时间复杂度就是O(n).
下面一程序:
void fun3(int n)
{
     int i=0,s=0;
     while(s<n)
      {
          i++;
          s=s+i;
       }
}

为什么其时间复杂度是如图所示,而不是O(n)呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

0

主题

4

帖子

46

积分

②入门

积分
46
QQ
发表于 2007-4-15 11:47:15 | 显示全部楼层
怎么说呢。。。那while循环并不是n次,而是近似为n的平方根次。。。因为每次循环,s的值并不是只增加1。。。。。。这结论好像用数学手段能推导出来。。。。
注册时那“YES”必须是大写。。。。。||||
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-4-15 17:23:58 | 显示全部楼层
那能否推出来看看呢? [s:2]  [s:2]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-5-2 00:56:38 | 显示全部楼层
因为s=1+2+3+4.....+n=n*(1+n)*2
要满足s<n
第一次 1=1          时间为1
第二次 1+2=3      时间为2
第三次 1+2=3      时间为2
第四次 1+2+3=6  时间为3
......可以看出随N增大,时间基本向sqrt(N)发展....
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-4 00:35 , Processed in 0.021955 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表