编写一个函数,使之能完成以下功能: 利用递归方法找出一个数组中的最大值和最小值,要求递归调用函数的格式如下: MinMaxValue(arr,n,&max,&min),其中 arr 是给定的数组,n 是数组元素的个数,max、min 分别是最大值和最小值
时间: 2024-10-07 17:07:54 浏览: 45
在Python中,你可以编写如下的递归函数来找到数组中的最大值和最小值:
```python
def MinMaxValue(arr, n, max_val=None, min_val=None):
# 如果数组只有一个元素,直接返回最大值和最小值
if n == 1:
return arr[0], arr[0]
# 如果没有传递初始的最大值和最小值,设置默认为数组的第一个元素
if max_val is None:
max_val = arr[0]
if min_val is None:
min_val = arr[0]
# 递归比较当前元素与最大值和最小值
next_max = MinMaxValue(arr[1:], n - 1, max_val, min_val)[0]
next_min = MinMaxValue(arr[1:], n - 1, max_val, min_val)[1]
# 更新最大值和最小值
if next_max > max_val:
max_val = next_max
if next_min < min_val:
min_val = next_min
return max_val, min_val
```
这个函数会接收一个数组`arr`,数组长度`n`以及指向最大值和最小值的指针`max`和`min`。在每次递归调用时,它都会比较当前元素是否大于或小于已知的最大值和最小值,并在必要时更新它们。
阅读全文