标签: python loops runtime sqrt
i=n while i>1 : i = int(math.sqrt(i)) print('*')
为什么在log(log(n))以上的代码的时间复杂度? (假设sqrt()在O(1)中运行。)
答案 0 :(得分:1)
假设n可以用k位编码。
第一次迭代后,i =√n,并且我可以在k / 2位上进行编码。
因此,编码i所需的位数在每一步均除以2,步数为log(k)。
如果k = log(n),则假设sqrt复杂度为1,则复杂度为log(log(n))。