二分搜索技术算法描述/代码
时间: 2023-12-18 20:04:01 浏览: 71
二分搜索(算法 代码)
二分搜索(Binary Search)是一种常见的搜索算法,也叫折半搜索。它是一种高效的查找有序数组中某一特定元素的算法,时间复杂度为 O(log n)。
二分搜索的基本思路是:将待查找区间不断缩小为原来的一半,直到找到目标元素或者区间为空为止。具体实现如下:
1. 初始化 left=0, right=n-1,表示要在数组 nums[left...right] 中查找目标元素。
2. 每次取区间的中间位置 mid=(left+right)/2,将目标元素与 nums[mid] 比较:
- 如果目标元素等于 nums[mid],返回 mid;
- 如果目标元素小于 nums[mid],说明目标元素在左半部分,将 right=mid-1;
- 如果目标元素大于 nums[mid],说明目标元素在右半部分,将 left=mid+1;
3. 重复步骤2,直到找到目标元素或者区间为空。
下面是二分搜索的 Python 代码实现:
```python
def binary_search(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1 # 目标元素不存在
```
其中,nums 表示要查找的有序数组,target 表示目标元素。如果找到目标元素,返回其下标;否则返回 -1。
阅读全文