Python二分查找
时间: 2024-02-20 15:55:12 浏览: 62
python 实现 二分查找
Python二分查找是一种常用的查找算法,也称为折半查找。它适用于有序数组或列表,并通过将目标值与数组的中间元素进行比较来确定目标值在数组中的位置。
以下是Python二分查找的基本步骤:
1. 确定数组的左边界和右边界,初始时左边界为0,右边界为数组长度减1。
2. 计算中间元素的索引,使用整数除法运算符(//)将左边界和右边界相加后除以2。
3. 将目标值与中间元素进行比较:
- 如果目标值等于中间元素,则找到了目标值,返回中间元素的索引。
- 如果目标值小于中间元素,则目标值可能在左半部分,更新右边界为中间元素的索引减1。
- 如果目标值大于中间元素,则目标值可能在右半部分,更新左边界为中间元素的索引加1。
4. 重复步骤2和步骤3,直到找到目标值或者左边界大于右边界为止。
以下是一个示例代码实现二分查找:
```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:
left = mid + 1
else:
right = mid - 1
return -1 # 目标值不存在
# 示例用法
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target = 6
result = binary_search(arr, target)
if result != -1:
print("目标值在数组中的索引为:", result)
else:
print("目标值不存在于数组中")
```
阅读全文