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 分)
上一题
下一题