Python实现二分查找
时间: 2023-11-19 10:11:00 浏览: 86
二分查找又称折半查找,是一种在有序数组中查找给定值的算法。算法每次查找都将查找区间缩小一半,直到找到目标值或区间为空为止。
以下是Python实现二分查找的代码:
```python
def binary_search(arr, target):
left = 0 # 左指针
right = len(arr) - 1 # 右指针
while left <= right:
mid = (left + right) // 2 # 中间位置
if arr[mid] == target:
return mid # 找到目标值,返回下标
elif arr[mid] > target:
right = mid - 1 # 在左半边查找
else:
left = mid + 1 # 在右半边查找
return -1 # 没有找到目标值,返回-1
```
该函数接受两个参数,一个有序数组和一个目标值。函数通过左右指针不断缩小查找区间,每次将中间位置与目标值比较,如果相等则返回中间位置,如果中间值大于目标值则在左半边继续查找,否则在右半边继续查找。如果查找完整个数组都没有找到目标值,则返回-1。
阅读全文