繁体   English   中英

我写了一个 python 代码来查找列表中的最大元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM