涉及电源时,时间复杂度是多少?

时间:2014-03-29 12:46:51

标签: python-3.x time-complexity

 def f1(lst):
     i=3
     while i<len(lst):
        print(lst[i])
        i **= 3

此代码的时间复杂度是多少?答案是O(loglogn),为什么?

1 个答案:

答案 0 :(得分:2)

看看i如何通过循环增长(^意味着权力在这里):

i_0 = 3
i_1 = i_0^3 = 3^3
i_2 = i_1^3 = (3^3)^3 = 3^(3*3)
i_3 = i_2^3 = (3^(3*3))^3 = 3^(3*3*3)
...
i_n = 3^(3^n)

这称为迭代权力,但 Tetration。如您所见,它是嵌套的指数,因此时间复杂度将是反函数:O(log3(log3(n)))