社区
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*/
}
...全文
172
8
打赏
收藏
时间复杂度
请教各位,下面算法的时间复杂度是多少,我认为是O(log2n) 其中2为底 不知道对不对 i = s = 0; while ( s < n) { i ++; /* i = i +1*/ s += i; /* s = s + i*/ }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N...
Dijkstra算法
时间复杂度
分析
文章目录Dijkstra算法的思路与关键点Dijkstra算法的
时间复杂度
之前一直默认Dijkstra算法
时间复杂度
为 o(n2)o(n^{2})o(n2),没有思考过具体的
时间复杂度
,今天把这个弄清楚。 Dijkstra算法的思路与关键点 思路:...
时间复杂度
的规则与计算
算法完成工作最少需要多少基本操作,即最优
时间复杂度
算法完成工作最多需要多少基本操作,即最坏
时间复杂度
算法完成工作平均需要多少基本操作,即平均
时间复杂度
对于最优
时间复杂度
,其价值不大,因为它...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章