一个列表中存在 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))