什么是大O符号为两种算法:的两种算法(大O符号计算)运行时间复杂度
def foo1(n):
if n > 1:
for i in range(int(n)):
foo1(1)
foo1(n/2)
def foo2(lst1, lst2):
i = 1
while i < max(len(lst1), len(lst2)):
j = 1
while j < min(len(lst1), len(lst2)):
j *= 2
i *= 2
我认为foo1运行时间复杂度为O(n),因为在这种情况下,对于所有的n
T(N)= O(N)+ O(N/2)< = C * O(n)的(c是常数):如果我看到for循环我可以做到这一点。
是这样吗?
,我不能计算foo2的运行时间可以有一个人帮助我知道这样做。
感谢...
'foo1(n/n)'这是一个错误吗? – DAle
不,它是foo1(n/n)= foo1(1) –
那你为什么不把它写成foo1(1)? – meowgoesthedog