菜鸟请教这个时间复杂度如何计算

stg609 2009-02-24 05:37:05
不知道如下时间复杂度该如何计算?请高手帮忙。最好能写出具体计算步骤

int i=1;
while(i<=n)
{
i=i*3;
}
...全文
225 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
syshengok 2009-02-28
  • 打赏
  • 举报
回复
up!
fire_woods 2009-02-26
  • 打赏
  • 举报
回复
O(log(3为底)n)=O(ln(n)/ln(3))=O(ln(n))
lq651659889 2009-02-26
  • 打赏
  • 举报
回复
up
thesecretblue 2009-02-26
  • 打赏
  • 举报
回复
O(ln(n))
  • 打赏
  • 举报
回复
从渐进意义上来说都是对的。
当然作为练习来说,分析得更细致一些好。
Linux校园社区 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dlyme 的回复:]
初始值i=1
循环执行1轮之后,i=3;
循环执行2轮之后,i=3^2;
......
循环执行t轮之后,i=3^t

假设循环一共执行过t轮,那么3^(t-1) <=n <3^t
取对数之后就可以看出,复杂度t是O(log(3为底)n)级的

[/Quote]

这个是对的
绿色夹克衫 2009-02-24
  • 打赏
  • 举报
回复
都是对的!O(log(n))

[Quote=引用 5 楼 stg609 的回复:]
哪个是对的呀??
[/Quote]
stg609 2009-02-24
  • 打赏
  • 举报
回复
哪个是对的呀??
邓毅 2009-02-24
  • 打赏
  • 举报
回复
O(ln(n)),复杂度不需要考虑对数的底,不同底的对数之间只差一个系数。
Pajack 2009-02-24
  • 打赏
  • 举报
回复
up.
  • 打赏
  • 举报
回复
初始值i=1
循环执行1轮之后,i=3;
循环执行2轮之后,i=3^2;
......
循环执行t轮之后,i=3^t

假设循环一共执行过t轮,那么3^(t-1)<=n<3^t
取对数之后就可以看出,复杂度t是O(log(3为底)n)级的
zhaoyuanhuan 2009-02-24
  • 打赏
  • 举报
回复
O(log3\n)

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧