数据结构(c语言版)

1.下面程序段的时间复杂度是__O(n^(1/2))____i=s=0While(s<n){i++;/*i=i+1*/s+=i;/*s=s+i*/}2.下面程序段的时间复... 1.下面程序段的时间复杂度是__O(n^(1/2))____
i=s=0
While(s<n)
{
i++; /* i=i+1 */
s+=i; /* s=s+i */
}
2.下面程序段的时间复杂度是___O(log3 N)(注:对N取3的对数)
i=1;
While (i<=n)
i=i*3;
可否详细解释下是怎么做出来的,谢谢啊
展开
 我来答
wxh0800
2010-09-15 · 超过11用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:31.5万
展开全部
1. Si = i*(i+1)/2 = (i^2 + i)/2 < n (经过i次运算)
根据复杂度理论,低阶变量和常量系数可以忽略,可以得出 i^2 < n
所以要经过i < n^(1/2) 次运算, 所以其时间复杂度为O(n^(1/2))

2. 同理 ik = 3^k <n (经过k次运算), k<log3N
所以其时间复杂度为O(log3 N)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式