每次迭代中i = srqt(i)时的运行时间/时间复杂度

时间:2019-02-16 21:49:06

标签: python loops runtime sqrt

i=n 
while i>1 :
    i = int(math.sqrt(i))
    print('*')

为什么在log(log(n))以上的代码的时间复杂度? (假设sqrt()在O(1)中运行。)

1 个答案:

答案 0 :(得分:1)

假设n可以用k位编码。

第一次迭代后,i =√n,并且我可以在k / 2位上进行编码。

因此,编码i所需的位数在每一步均除以2,步数为log(k)。

如果k = log(n),则假设sqrt复杂度为1,则复杂度为log(log(n))。