社区
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*/
}
...全文
156
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).
时间复杂度
和空间复杂度(超详细)
文章目录算法的
时间复杂度
和空间复杂度复杂度的分析一. 时间维度事后统计法事前分析估算的方法
时间复杂度
(1)时间频度(2)
时间复杂度
大O符号表示法常见的
时间复杂度
量级常数阶O(1)线性阶O(n)对数阶O(logN)线性对数阶O...
八种排序算法的
时间复杂度
复杂度
1、稳定性 归并排序、冒泡排序、插入排序。基数排序是稳定的 ...最基础的四个算法:冒泡、选择、插入、快排中,快排的
时间复杂度
最小O(n*log2n),其他都是O(n2) 排序法 平均时间 最差情形 稳定度 ...
递归算法
时间复杂度
分析
递归算法
时间复杂度
分析
时间复杂度
: 一般情况下,算法中基本操作重复的次数就是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用‘o’来表示数量级,给出算法
时间复杂度
。 T...
各种排序算法的
时间复杂度
时间复杂度
当我们评价一个算法的时间性能时,主要标准就是算法的渐近
时间复杂度
,在算法分析时,经常是将渐近
时间复杂度
T(n)=O(f(n))简称为
时间复杂度
,其中的f(n)一般是算法中频度最大的语句频度。算法中语句的...
算法的
时间复杂度
和空间复杂度计算
1、算法
时间复杂度
1.1算法
时间复杂度
的定义: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的
时间复杂度
,也就是算法的时间量度,记作...
C语言
70,026
社区成员
243,262
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章