python数组二分查找
时间: 2023-11-11 17:56:02 浏览: 108
二分查找(Binary Search)是一种在有序数组中查找特定元素的算法。它将数组分成两个部分,然后判断目标值与中间值的大小关系,从而确定下一步查找的范围。如果目标值等于中间值,则找到了目标值;如果目标值小于中间值,则在左半部分继续查找;如果目标值大于中间值,则在右半部分查找。这个过程不断重复,直到找到目标值或者确定不存在目标值为止。
在Python中实现二分查找可以采用非递归的方式。下面是一个示例代码:
```python
def binary_search(alist, data):
first = 0
last = len(alist) - 1
while first <= last:
mid = (first + last) // 2
if alist[mid] > data:
last = mid - 1
elif alist[mid] < data:
first = mid + 1
else:
return True
return False
```
你可以将待查找的有序数组作为参数传入`binary_search`函数,并指定要查找的值。如果找到了目标值,函数会返回`True`;如果未找到,函数会返回`False`。
例如,如果你有一个有序数组`[2, 4, 5, 12, 14, 23]`,你可以调用`binary_search`函数来查找其中是否包含值`16`。
```python
lis = [2, 4, 5, 12, 14, 23]
if binary_search(lis, 16):
print('ok')
```
以上代码会输出"ok",表示在数组中找到了目标值。
阅读全文