详细讲讲二分查找并举例说明
时间: 2023-10-24 17:08:24 浏览: 97
二分查找,也称折半查找,是一种在有序数组中查找目标值的算法。它的思想是将数组分成两部分,查找目标值所在的那一部分,然后继续对该部分进行二分查找,直到找到目标值或者确定目标值不存在为止。
下面是二分查找的具体步骤:
1. 令 left = 0,right = n-1,其中 n 为数组长度。
2. 计算 mid = (left + right) / 2,取整。
3. 如果目标值等于 array[mid],则返回 mid。
4. 如果目标值小于 array[mid],则在左半部分继续查找,令 right = mid - 1,重复步骤 2。
5. 如果目标值大于 array[mid],则在右半部分继续查找,令 left = mid + 1,重复步骤 2。
6. 如果 left > right,则说明目标值不存在于数组中,返回 -1。
下面是一个用 Python 实现的二分查找的例子:
```python
def binary_search(array, target):
left, right = 0, len(array) - 1
while left <= right:
mid = (left + right) // 2
if array[mid] == target:
return mid
elif array[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
假设有一个有序数组 `array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`,现在要查找目标值 `target = 7`,则使用二分查找,按照上述步骤进行查找,最终返回目标值的下标 6。
阅读全文