社区
C语言
帖子详情
时间复杂度
arczee
2006-01-02 10:59:40
请教各位,下面算法的时间复杂度是多少,我认为是O(log2n) 其中2为底
不知道对不对
i = s = 0;
while ( s < n)
{
i ++; /* i = i +1*/
s += i; /* s = s + i*/
}
...全文
161
8
打赏
收藏
时间复杂度
请教各位,下面算法的时间复杂度是多少,我认为是O(log2n) 其中2为底 不知道对不对 i = s = 0; while ( s < n) { i ++; /* i = i +1*/ s += i; /* s = s + i*/ }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
murphykwu
2006-01-04
打赏
举报
回复
因为循环了n次
O(logn)
ox_thedarkness
2006-01-04
打赏
举报
回复
恩,纠正的纠正....偶最开始说的是对的, 然后说我说的是错的那贴是错的.... 正确答案仍然是 O(n开方),亦即 jp1984(compiler) 的答案。
orz。。。回贴后看到YufengShi(浪子) 的,头脑短路了。。。
作为对比,下面这个才是 log2n
s = 0;
i = 1;
while ( s < n)
{
i*=2; // i = 2^t
s += i; // s = 2 + 4 + 8 + ... + 2^t = 2^(t+1) - 2 ~ O( 2^t )
}
这个例子的s增长速度为 2^t (2的t次方),时间复杂度为 log2n ( n对2的对数)
你的例子的s增长速度为 t^2 (t的平方), 时间复杂度为 n~1/2 ( n的开方)
ox_thedarkness
2006-01-02
打赏
举报
回复
orz .... 失败...错了,是log2n
上面的全是废话...
ox_thedarkness
2006-01-02
打赏
举报
回复
s = 1 +2 + 3 +。。。+ i = i*(i-1)/2 ~ i^2
即, s增长的速度是 i的平方
所以结果是 O ( s^1/2 ) 或者说复杂度为 s开方.
比较 log2n 和 n开方, 对他们的比值求极限,有
lim( n^1/2 / log2n )
= ln2* lim( n^1/2 / ln n )
= ln2* lim( (1/2)*(n^ -1/2 ) / (1/n) )
= (ln2)/2 * lim( n^ 1/2 ) -> 无穷
即, n开方是log2n的高阶无穷大, 简而言之就是比log2n差
YufengShi
2006-01-02
打赏
举报
回复
2^k = n (k是循环次数)
k = log2 n
也就是说复杂度是O(log2n)
jp1984
2006-01-02
打赏
举报
回复
and the bound is tight too
jp1984
2006-01-02
打赏
举报
回复
assume the loop run x times .
then s = 1 + 2 + .. + x = x(1+x)/2<n
2n>x(x+1)>x*x
=> x < sqrt(2n)
the basic operation takes O(1) time ,hence the procedure takes O(sqrt(n)) time
yangman211
2006-01-02
打赏
举报
回复
In my opinion of young brother,
the time complex of this question is O(n^2).
详解
时间复杂度
计算公式(附例题细致讲解过程)
这几天开始刷力扣上面的算法题,有些题目上面限制
时间复杂度
和空间复杂度,题目虽然写出来了,但是很没底。印象里数据结构老师讲过一点,沉睡的记忆苏醒了。只记得一个
时间复杂度
是O(n),空间复杂度是S(n)。for循环...
各种排序算法的
时间复杂度
时间复杂度
当我们评价一个算法的时间性能时,主要标准就是算法的渐近
时间复杂度
,在算法分析时,经常是将渐近
时间复杂度
T(n)=O(f(n))简称为
时间复杂度
,其中的f(n)一般是算法中频度最大的语句频度。算法中语句的...
Hash表的
时间复杂度
为什么是O(1)?
@TOC ...所以只要知道了数组的下标,就可以计算得到数组的地址,比如元素4,我们知道数组起始地址后,只要用起始地址+下标*4就可以知道元素4的地址,所以访问数组元素的
时间复杂度
为O(1) ......
时间复杂度
和空间复杂度的简单讲解
一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。 把今年很流行,淡淡的基佬紫送给各位看官,原谅绿就算了,怕被打死...当我们面前有多个算法时,我们可以通过计算
时间复杂度
,判断出哪一
时间复杂度
和空间复杂度详解
算法
时间复杂度
和空间复杂度 1.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为
时间复杂度
,而空间效率被称作空间复杂度。
时间复杂度
主要衡量的是一个算法的运行速度,而空间...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章