分治法求最大最小值Python
时间: 2024-04-10 07:25:49 浏览: 94
分治法是一种常用的算法设计策略,它将一个大问题分解成若干个相同或相似的子问题,然后递归地解决这些子问题,最后将子问题的解合并得到原问题的解。下面是使用分治法求解最大最小值的Python代码示例:
```python
def find_max_min(arr):
# 如果数组只有一个元素,则最大值和最小值都是该元素
if len(arr) == 1:
return arr, arr
# 如果数组有两个元素,则比较它们的大小返回最大值和最小值
if len(arr) == 2:
if arr > arr:
return arr, arr
else:
return arr, arr
# 如果数组有多个元素,则将数组分成两部分,分求解左右两部分的最大值和最小值
mid = len(arr) // 2
left_max, left_min = find_max_min(arr[:mid])
right_max, right_min = find_max_min(arr[mid:])
# 合并左右两部分的最大值和最小值
max_val = max(left_max, right_max)
min_val = min(left_min, right_min)
return max_val, min_val
# 测试示例
arr = [5, 2, 9, 1, 7]
max_val, min_val = find_max_min(arr)
print("最大值:", max_val)
print("最小值:", min_val)
```
阅读全文