折半查找Python
时间: 2023-12-25 19:29:08 浏览: 106
折半查找(二分查找)是一种在有序数组中查找特定元素的搜索算法。它的搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果要查找的元素大于中间元素,则在数组的后半部分继续查找;如果要查找的元素小于中间元素,则在数组的前半部分继续查找。通过每次比较将搜索范围缩小一半,最终找到目标元素或者确定目标元素不存在。
以下是一个使用Python实现折半查找的例子:
```python
def binary_search(arr, target):
low = 0
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
# 示例使用
arr = [1, 3, 5, 7, 9]
target = 5
result = binary_search(arr, target)
if result != -1:
print("元素在索引", result)
else:
print("元素不在数组中")
```
这个例子中,我们定义了一个`binary_search`函数来执行折半查找。它接受一个有序数组`arr`和要查找的目标元素`target`作为参数。函数使用`low`和`high`两个指针来表示当前搜索范围的左右边界,然后在循环中不断更新这两个指针,直到找到目标元素或者确定目标元素不存在。
阅读全文