题库 Python题库 题目列表 一个列表中存在n个数据,可以用分治算法来找到其中的...
问答题

一个列表中存在n个数据,可以用分治算法来找到其中的最小值。具体过程如下:如果列表元素的个数小于等于2的时候,经过一个判断就找到其中的最小值,所以可以先把数据从中间划分为左右两部分,然后通过递归把每一部分再划分为左右两部分,直到数据规模小于等于2的时候,返回结果,然后通过递归到最后为两个数据对比,我们就可以找到最小值。
请根据以上算法过程,补全代码。
# 求列表中小于两个元素的最小值
def get_min(number):
    if len(number) == 1:
        return                 
    else:
        if number[1] > number[0]:
            return number[0]
        else:
            return number[1]

def solve(number):
    n = len(number)
    if n <= 2:
        return get_min(number)
    else:
        # 将整个列表分为左右两部分
        left_list, right_list =                 , number[n//2:]
        # 递归(树),分治
        left_min, right_min = solve(left_list),                 
        return get_min([left_min, right_min])

test_list = [5, 11, 3, 2, 7, 9]
print(solve(test_list))

题目信息
2023年 9月 编程题
-
正确率
0
评论
159
点击