社区
C语言
帖子详情
请教数据结构时间复杂度的问题
ldchbest
2002-07-13 01:02:15
下面程序段的时间复杂度是多少?
i=s=0;
while(s<n)
{i++; s+=i;}
本题出自李春葆的《数据结构(C语言篇)习题与解析》,上面给出的答案是O(n),但我觉得应该是O(n的平方根)。
望指教,多谢了!
...全文
568
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)
算法
时间复杂度
与
数据结构
问题
解析
本文详细分析了数组操作的
时间复杂度
,包括读取、搜索、插入和删除等基本操作所需的步骤。同时探讨了不同算法如线性搜索、二分查找、复利计算及多层循环的复杂度,并结合大O表示法进行了描述。此外还涉及
数据结构
相关的
问题
,如栈、队列的应用场景以及递归的基本情况。
【
数据结构
—堆排序、top k
问题
和
时间复杂度
】
本文介绍了堆排序的两种调整算法(向上和向下),详细讲解了如何利用堆
数据结构
解决topk
问题
,包括两种思路的代码实现以及
时间复杂度
的讨论。着重强调了在实际应用中考虑效率的重要性。,
[
数据结构
]
时间复杂度
相关
问题
本文深入解析常见的
时间复杂度
,如O(1), O(n), O(n²), O(logn), O(nlogn),并提供了具体算法实例分析,帮助理解不同复杂度等级的特点及计算方法。
数据结构
——堆的
时间复杂度
推导及topk
问题
本文详细探讨了堆的结构特性,包括满二叉树和完全二叉树中节点与层数的关系,以及向下调整和向上调整建堆算法的
时间复杂度
对比。此外,还介绍了如何解决堆中的TOPK
问题
,通过两种方法对比,突显高效的空间利用策略。,
数据结构
相关
时间复杂度
问题
时间复杂度
是衡量算法效率的重要概念,主要分析算法中基本操作的频度与
问题
规模的关系。大O记号用来表示算法的渐进
时间复杂度
,提供了一个上界,例如O(n²)表示执行时间与n²成正比的上限。
问题
规模是影响算法效率的关键因素,而非计算机软硬件配置。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章