【发布时间】:2020-03-26 18:55:15
【问题描述】:
你能告诉我代码的时间复杂度吗?我使用的是分而治之的技术?
def max_of_list(l):
if(len(l)==1):
return l[0]
else:
left_max=max_of_list(l[:len(l)//2])
righ_max=max_of_list(l[len(l)//2:])
return max(left_max,righ_max)
【问题讨论】:
-
列表未排序
-
你最终还是调用了内置的
max——为什么不直接调用整个列表呢? -
我只使用 in 用于 2 个值
-
我找不到时间复杂度,我认为这是 log(n)
-
实际上是 O(n),对于仅使用比较在无序数组中进行选择的问题,没有算法具有下限。
标签: python algorithm recursion divide-and-conquer