用二分法写出从n个元素找到特定的值
时间: 2024-09-18 11:02:02 浏览: 33
写出二分法查找算法函数实现。
二分查找算法是一种在有序数组中查找特定元素的有效方法,也称为折半查找。其基本步骤如下:
1. **初始化**:设置两个指针,`low`表示数组的起始索引,`high`表示数组的结束索引。初始时,`low = 0` 和 `high = n - 1`。
2. **检查条件**:当`low`小于等于`high`时,循环继续。
3. **计算中间位置**:计算中间索引`mid`,通常是 `(low + high) // 2`。
4. **比较目标值**:如果数组的中间元素正好是我们正在寻找的目标值,返回这个索引。
5. **判断并调整范围**:如果中间元素大于目标值,说明目标可能在左半部分,将`high`设为`mid - 1`;如果中间元素小于目标值,说明目标可能在右半部分,将`low`设为`mid + 1`。
6. **重复步骤2-5**,直到找到目标值或者`low > high`,此时表明目标不存在于数组中。
```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 # 如果没找到目标,返回-1表示未在数组中找到
```
阅读全文