python使用分治法找序列最大值

Posted day顾小北

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用分治法找序列最大值相关的知识,希望对你有一定的参考价值。

最近上算法导论课,说道分治法,回来想用python写写程序练练手,于是模仿一通写了如下的代码:

 

__author__ = day

def ArrayMaxMin(Array):
    return max(Array)
def Sort(init_Array):
    if len(init_Array) <= 2:
        print (ArrayMaxMin(init_Array))
    else:
        init_Array=[init_Array[i:i+2] for i in range(0,len(init_Array),2)]
        max_init_Array=[]
        for Array in init_Array:
            max_init_Array.append(ArrayMaxMin(Array))
        Sort(max_init_Array)

if __name__ == __main__:
    Array = [2,5,5,3,6,37,7,8]
    Sort(Array)

 

方法实现了,可是现在问题来了。直接用max内建函数不是直接就解决问题了吗,为什么要使用分治法呢??

以上是关于python使用分治法找序列最大值的主要内容,如果未能解决你的问题,请参考以下文章

0.分治永远大于顺序?关于最大子序列和问题的思考

分治策略 - 最大子序列问题

分治法求最大子序列

分治算法解最大子序列和问题

分治法(求最大子序列和)

BZOJ4553/洛谷P4093 [HEOI2016/TJOI2016]序列 动态规划 CDQ分治