社区
C语言
帖子详情
请教数据结构时间复杂度的问题
ldchbest
2002-07-13 01:02:15
下面程序段的时间复杂度是多少?
i=s=0;
while(s<n)
{i++; s+=i;}
本题出自李春葆的《数据结构(C语言篇)习题与解析》,上面给出的答案是O(n),但我觉得应该是O(n的平方根)。
望指教,多谢了!
...全文
524
30
打赏
收藏
请教数据结构时间复杂度的问题
下面程序段的时间复杂度是多少? i=s=0; while(s<n) {i++; s+=i;} 本题出自李春葆的《数据结构(C语言篇)习题与解析》,上面给出的答案是O(n),但我觉得应该是O(n的平方根)。 望指教,多谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qhgary
2002-09-16
打赏
举报
回复
首先我要说O的定义中有一个“最接近”的上限问题,所以n虽然肯定满足,但显然不是O(n),其次我要说复杂度是什么可能都有,但是一般来说只看级别就可以。常用的是n n^2 n^3 n^(1/2) n^(1/3) n^(2/3) log(n) nlog(n)
1 知道属于哪个级就行了,没有必要算的那么精确的。
对于这个题目,我觉得应该是O(sqrt(n))级
sandrowjw
2002-09-16
打赏
举报
回复
后面那个答案是一样的吧,因为对于步长做线性变化不会影响算法的复杂度的。
sandrowjw
2002-09-16
打赏
举报
回复
我觉得楼主对,别全信书。
gscool
2002-09-16
打赏
举报
回复
我现在也在学数据结构,一起研究吧
我觉得应该是o(n),如果里面再嵌套一层循环得话才应该是o(n^2)吧
ldchbest
2002-09-15
打赏
举报
回复
再次感谢大家的帮助
ldchbest
2002-07-28
打赏
举报
回复
To fatalerror99
这确实应该属于算法的范畴,不过该题目就是从数据结构的书上拿下来的。
谢谢大家的踊跃发言,让我受益很深。好象可以给大家加分,可是我不会用。
fatalerror99
2002-07-22
打赏
举报
回复
纠正一下楼主的说法,时间复杂度是算法的概念,不是数据结构的概念。
lizhongkun
2002-07-22
打赏
举报
回复
1, o(sqrt(N))
2,
for(i=s=0;s<n;s=s+2*(i++));O(sqrt(n- ??? ))
if (n=(2 6 12 20 30 42 56 72 90 110*************)O(n
1 2 3 4 5 6 7 8 9 10
songbin21
2002-07-22
打赏
举报
回复
上两楼的程序,循环应该满足条件:0+2+4+……<n,则当0+2+4……==n时结束。
即:(1+m)m/2 = n/2 ps: m:循环次数
解方程,得m=(1+sqrt(1+4n))/2
即为时间复杂度。
我是这样认为的,不知道对不对。
atlantis13579
2002-07-21
打赏
举报
回复
呵呵,复杂度什么级都有
yuying
2002-07-21
打赏
举报
回复
不好意思,看错题目了。
复杂度是O(n),复杂度应该没有平方根级。
yuying
2002-07-21
打赏
举报
回复
复杂度当然是O(n).
只有一个循环, i++ , s+=i;是线性的,并没有嵌套循环,怎么会是O(n平方)呢。
atlantis13579
2002-07-21
打赏
举报
回复
yes,是O(n的平方根)
abcpanpeng
2002-07-21
打赏
举报
回复
是0(n)。
redleaves
2002-07-21
打赏
举报
回复
TO liangyan82(琰):
我想问一下,你这个n是什么?
如果是程序中的n的话,这个循环只有在n=1,2时为O(n),当n大于2时是无法循环到n次的,2n>i(i+1),i是这个循环运行的次数.怎么可能和n接近呢?
难道你的O(n)中的n是程序中的其它控制条件吗?
redleaves
2002-07-21
打赏
举报
回复
那么如果我把程序改为如下:
i=s=0;
while(s<n)
{i++; s+=2*i;}
这个程序的复杂度是多少?
怎么比较这个程序为原程序?
liangyan82
2002-07-21
打赏
举报
回复
我也有算过这个,应该是o(n)
tigerfox
2002-07-21
打赏
举报
回复
0(n) 对呀,你是怎么想的!
LeeMaRS
2002-07-20
打赏
举报
回复
i=s=0;
while(s<n)
{i++; s+=i;}
to 楼上 : 注意判断的条件是s这个累加器.
qchen
2002-07-20
打赏
举报
回复
按此程序,应执行:i=i+1,s=s+i,简单操作次数为n次
在下认为应该是O(n)
加载更多回复(10)
图解Java
数据结构
和算法
内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫
问题
、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫
问题
、八皇后
问题
、算法的
时间复杂度
、冒泡排序、...
数据结构
算法的
时间复杂度
与空间复杂度的计算(带有例题讲解)
时间复杂度
对于算法
时间复杂度
的粉系需要牢记一句话:将算法中基本操作的执行次数作为算法
时间复杂度
的度量。
时间复杂度
并不是执行完一段程序的总时间,而是其中基本操作的总次数。 在考试的算法题目中你总能找到...
数据结构
-
时间复杂度
时间复杂度
定义: 描述算法的运行时间。 ----------------- 对于“期望”在网上找了不少资料但还是感觉一知半解,在此
请教
各位大佬,帮忙解答一下,万分感谢。
数据结构
之算法的
时间复杂度
和空间复杂度
时间复杂度
的概念:在计算机科学中,算法的
时间复杂度
是一个函数,它描述了一个算法运行所需要的时间。而算法所运行的时间是计算不出来的,算法运行的时间与基本操作运行的次数成正比。
时间复杂度
主要衡量的是算法的...
数据结构
之
时间复杂度
的计算
计算过程: 用常数1取代运行时间中的所有加法常数。...首先顺序结构的
时间复杂度
。下面这个算法,是利用高斯定理计算1,2,……n个数的和。 int sum = 0, n = 100; /*执行一次*/ sum = (1 + n) * n / 2; /*执行...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章