举一个含有上下界剪枝函数的代码实列
时间: 2024-12-18 17:17:30 浏览: 4
在二分搜索算法中,上下界剪枝是一个常见的优化技巧,用于减少搜索范围。以下是一个简单的Python示例,它在一个预定义的范围内查找给定元素`target`:
```python
def binary_search(arr, target, low=0, high=None):
if high is None:
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1 # 上界剪枝:如果中间元素小于目标,缩小左半部分的范围
else:
high = mid - 1 # 下界剪枝:如果中间元素大于目标,缩小右半部分的范围
return -1 # 如果未找到目标,返回-1表示不存在
# 示例数组
arr = [1, 3, 5, 7, 9]
# 查找元素5(假设已知目标在数组内)
result = binary_search(arr, 5)
if result != -1:
print(f"Element found at index {result}")
else:
print("Element not found in the array")
```
在这个例子中,每当搜索范围减半时,我们都会更新`low`或`high`,使得下一次迭代只会在剩余可能的目标范围内进行,从而避免不必要的搜索。
阅读全文