实现有序数组的二分查找。
时间: 2023-10-27 16:05:17 浏览: 92
二分查找,也称折半查找,是一种基于比较目标值和数组中间元素的搜索算法。若目标值等于中间元素,则找到目标值;若目标值较小,则在数组的左半部分继续查找;若目标值较大,则在数组的右半部分继续查找。重复以上步骤直到找到目标值或者确定目标值不存在为止。
以下是一个实现有序数组的二分查找的示例代码,假设要查找的目标值为target
,有序数组为nums
:
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
在上述代码中,我们首先初始化左右指针left
和right
分别为数组的首尾下标,然后在循环中不断缩小查找范围,直到左指针大于右指针为止。在每次循环中,我们计算中间元素的下标mid
,如果中间元素等于目标值,则返回其下标;否则,如果中间元素较小,则将左指针移动到mid+1
的位置;否则,将右指针移动到mid-1
的位置。如果循环结束时仍然没有找到目标值,则返回-1表示目标值不存在于数组中。
相关推荐












