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内建函数不是直接就解决问题了吗,为什么要使用分治法呢??

posted @ 2016-03-16 12:47  day顾小北  阅读(762)  评论(0编辑  收藏  举报