测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A50043. 利用分治思想, 给定一个顺序表, 编写一个求出其最大值的程序。根据上述算法思想, 补全下列代码。输入输出示例: 当顺序表是&;[22,13,34,4,68,15,5,58,36], 输出: 68def fun_max(num=list): return max(num)def fun(num): n = ① if n <= 2: return ② l_list, r_list = num[:n/…

填空题 较难

题目描述

利用分治思想, 给定一个顺序表, 编写一个求出其最大值的程序。

根据上述算法思想, 补全下列代码。

输入输出示例: 当顺序表是&;[22,13,34,4,68,15,5,58,36], 输出: 68

def fun_max(num=list):

return max(num)

def fun(num):

n = ①

if n <= 2:

return ②

l_list, r_list = num[:n//2], num[n//2:]

l_max, r_max = ③

return

fun_max(④)

if __name__ == "__main__":

alist = [22,13,34,4,68,15,5,58,36]

print(fun(alist))

参考答案

def fun_max(num=list): return max(num) def fun(num): n = len(num) if n <= 2: return fun_max(num) l_list, r_list = num[:n//2], num[n//2:] l_max, r_max = fun(l_list), fun(r_list) return fun_max(fun(alist)) if __name__ == "__main__": alist = [22,13,34,4,68,15,5,58,36] print(fun(alist))

答案解析

评分标准:

 ① len(num) 或等效答案;  (2 分)

 ② fun_max(num) 或等效答案;  (2 分) 

 ③ fun(l_list), fun(r_list) 或等效答案;   (2 分)

 ④ [l_max, r_max] 或等效答案;(2 分)

上一题 下一题