二分检索的时间复杂度
时间: 2024-01-02 10:21:57 浏览: 75
比较搜索的时间复杂度
二分检索的时间复杂度为O(log n)。
二分检索是一种高效的搜索算法,它通过将已排序的数组分成两半来查找目标元素。每次比较中间元素与目标元素,如果中间元素等于目标元素,则返回该元素的索引;如果中间元素大于目标元素,则在左半部分继续搜索;如果中间元素小于目标元素,则在右半部分继续搜索。重复这个过程,直到找到目标元素或者确定目标元素不存在。
由于每次比较都将搜索范围减半,所以二分检索的时间复杂度为O(log n),其中n是数组的长度。
以下是一个使用二分检索查找目标元素的示例代码:
```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
# 示例用法
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target = 6
result = binary_search(arr, target)
print("目标元素的索引:", result) # 输出:5
```
阅读全文