Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

一个关于时间复杂度的问题 (求解)

[复制链接]
跳转到指定楼层
楼主
wangkang 发表于 07-8-19 09:53:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
i=s=0;
             while(s<n)
             {
                    i++;
                    s+=i;
             }
             请问这段程序的时间复杂度  我算的是O(根号n)
              我的解答过程是:假设执行N次,则有1+2+3+......+N<n   则有   N(N+1)除以2<n,    得到N<O(根号n)
             习题上的答案是O(n)     我不知道是为什么     请求高手解答   谢谢
沙发
dreamserver 发表于 07-8-19 10:29:03 | 只看该作者
就是O(N)次,因为i=s=0,循环当中s 始终等于0压!
板凳
ctguyg 发表于 07-8-19 11:55:34 | 只看该作者
ding yi xia
地板
 楼主| wangkang 发表于 07-8-19 21:50:36 | 只看该作者
大哥    能不能说明白点     我还是认为是O(根号n)
5#
sgh307 发表于 07-8-25 21:16:50 | 只看该作者
解的没错是根号N
6#
n1m234 发表于 07-8-25 21:19:31 | 只看该作者
你看清楚 ,一般对于时间复杂度以几次方为基础的,就是 以 n n^2 n^3  没有以根号的.所以至少都是N
7#
libin_421 发表于 07-8-25 23:21:03 | 只看该作者
我的看法:
    对于时间复杂度,其是针对算法的,不是针对具体的语句,因此只需选取最大的一个语句频度就行了,因此就是while判断的n次,我没看懂你的1+2+......+N是怎么来的。故时间复杂度为O(n)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-11-19 11:31 , Processed in 0.114612 second(s), 12 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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