二分法python求最大值和最小值代码实例
时间: 2024-10-24 21:15:54 浏览: 47
二分法通常用于查找有序数组中的特定元素,但它也可以作为辅助算法来找到数组的最大值和最小值。这里是一个简单的Python代码示例,展示了如何使用二分法寻找最大值和最小值:
```python
def find_min_max(arr):
if len(arr) == 0: # 如果数组为空,返回None或抛出异常
return None
# 初始化最小值和最大值为数组的第一个元素
min_val = max_val = arr[0]
def binary_search(min_val, max_val):
mid = (min_val + max_val) // 2
if arr[mid] < mid: # 如果中间元素小于其索引,则更新最大值
max_val = mid
elif arr[mid] > mid: # 否则,如果中间元素大于其索引,则更新最小值
min_val = mid
if max_val - min_val == 1: # 当两个指针相差1时,找到了边界,返回最大值和最小值
return arr[min_val], arr[max_val]
else:
# 继续二分搜索直到找到边界
return binary_search(min_val, max_val)
return binary_search(min_val, max_val)
# 测试代码
arr = [4, 2, 9, 6, 5, 8, 1]
min_value, max_value = find_min_max(arr)
print("Minimum value:", min_value)
print("Maximum value:", max_value)
阅读全文