首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
下面程序段的时间复杂度为() let i = 1; whil
[单选题]
下面程序段的时间复杂度为()
let i = 1;
while(i<=n)
i = i*3
O(n)
O(3n)
O(
)
O(
)
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(3)
分享
纠错
1个回答
添加回答
0
一笑而过2222
这个程序段的时间复杂度可以通过分析循环的次数来确定。程序中有一个 while 循环,每次循环都会将 i 的值乘以 3。我们可以观察到 i 的变化如下: 1. 初始值:i = 1 2. 第一次循环后:i = 1 \times 3 = 3 3. 第二次循环后:i = 3 \times 3 = 9 4. 以此类推,第 k 次循环后:i = 3^k 循环将一直进行,直到 i 大于 n。我们需要找到满足 3^k \leq n 的最大的 k 值,然后 k 就是循环的次数。 对不等式 3^k \leq n 取对数,得到 k \log_3(3) \leq \log_3(n),简化后得到 k \leq \log_3(n)。因为 k 是整数,我们需要取 k 的上界,即 k = \lceil \log_3(n) \rceil,其中 \lceil \cdot \rceil 表示向上取整。 因此,循环的次数是 O(\log_3(n)
发表于 2024-07-03 09:42:12
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
复杂度
难度:
1条回答
3收藏
312浏览
热门推荐
相关试题
从所给的四个选项中,选择最合适的一...
图形推理
评论
(1)
心理暗示是指个体在无意识情况下,从...
定义判断
评论
(1)
大模型在处理多语言生成任务时,其内...
大模型概念
评论
(1)
模型稀疏化(Pruning)技术主...
大模型概念
评论
(1)
以下哪种方法主要用于缓解大模型训练...
大模型概念
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题