下面程序段的时间复杂度为() let i = 1; while(i<=n)     i = i*3

区块链毕设网qklbishe.com为您提供问题的解答

下面程序段的时间复杂度为()
let i = 1;
while(i<=n)
    i = i*3
这个程序段的时间复杂度可以通过分析循环的次数来确定。程序中有一个  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)
42:12

以上就是关于问题下面程序段的时间复杂度为()
let i = 1; while(i<=n)     i = i*3的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 下面程序段的时间复杂度为() let i = 1; while(i<=n)     i = i*3