以下函数的“大O”是什么?我认为它是O(log(n)), 但我想再确认一下。这个函数只是判断它的参数是否为2的幂。
def pow_of_2(x):
a = math.log(x, 2)
if a == math.floor(a):
return True
else:
return False
O(1)
,因为它执行固定的计算,然后返回True
或False
。 - Tim Biegeleisenpow_of_2(2 ** 1000)
返回False。 - Paul Hankinx
),而且你只对它进行了固定数量的操作(无论“x”取什么值)。 - mgilson