python 二分法查找算法
时间: 2023-09-05 21:14:13 浏览: 118
python二分法查找算法实现方法【递归与非递归】
5星 · 资源好评率100%
二分法查找算法也被称为折半查找算法,它是一种高效的查找算法。它的基本思想是:将有序数组分成两部分,取数组中间的元素与目标值进行比较,如果中间元素等于目标值,则直接返回;如果中间元素大于目标值,则在左半部分继续查找;如果中间元素小于目标值,则在右半部分继续查找。重复上述过程,直到数组中不存在目标值,或者查找范围为空。
以下是 Python 实现二分法查找算法的代码:
```python
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
其中,`arr` 为有序数组,`target` 为目标值。函数返回目标值在数组中的下标,如果不存在则返回 -1。
使用示例:
```python
arr = [1, 3, 5, 7, 9]
target = 5
print(binary_search(arr, target)) # 输出:2
```
时间复杂度为 O(logn),比线性查找算法要快得多。
阅读全文