求最小值

cf247019 程序题 共 个子题

题目说明

利用分治算法,求一个非空整数列表中的最小值。补全以下代码。

算法说明:将列表不断二分,直到子列表长度小于等于2,直接比较得出最小值,然后合并结果(返回两个子列表最小值中的较小者)。

def find_min(nums):
    n = len(nums)
    # 基线条件:问题规模足够小,直接求解
    if n == 1:
        return         ①
    elif n == 2:
        return         ②
    # 分解:将大问题分成两个子问题
    mid = n // 2
    left_part = nums[:mid]
    right_part = nums[mid:]
    # 解决:递归求解子问题
    left_min = find_min(left_part)
    right_min = find_min(right_part)
    # 合并:合并子问题的解
    return         ③
# 测试
test_list = [34, 12, 5, 78, 3, 56, 91, 23]
print('列表中的最小值是:', find_min(test_list))

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧