编程题

下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。

#子问题规模小于或等于2时

def zui_da_zhi(a_list):

    if   ①   :

        if a_list[0]>=a_list[1]:

            most=a_list[0]

        else:

            most=a_list[1]

    else:

        most=a_list[0]

    return most

# 分治算法排序

def fen_zhi(init_list):

    n=len(init_list)

    if n<=2:                  #若问题规模小于或等于2,解决

        return zui_da_zhi(init_list)

    #分解(子问题规模为n/2)

    left_list,right_list=   ②   

    #递归,分治

    left_max,right_max=   ③   

    #合并

    return zui_da_zhi([left_max,right_max])


#测试数据

test_data=[12,25,4,47,69,5,4,6,37,89,21]

print('最大值为:',fen_zhi(test_data))

查看答案
赣ICP备20007335号-2