[英]i have written a python code to find maximum element in a list
你能告诉我代码的时间复杂度吗,我正在使用分而治之的技术?
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)
您需要使用主定理,因为这是一个递归算法:
T(n) = a T(n/b) + f(n)
a:子问题的数量
b:子问题的规模缩减
f(n):子问题拆分/合并过程的复杂度
该算法递归繁重,因为 f(n) 拆分/连接过程的复杂度为 O(1)。 因此,算法的复杂度为 O(n^c),其中 c 是临界指数,由下式给出:
c = 日志(a)/日志(b)
在这种特殊情况下:
c = 日志(2)/日志(2)= 1
因此,算法的复杂度是线性的:例如 O(n)
你可以阅读更多关于主定理的信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.