蓝桥每日打卡--查找有序数组中的目标值
#蓝桥#JAVA#查找有序数组中的目标值
题目描述
在有序数组 [1, 3, 5, 7, 9, 11, 13]
中查找目标值 7
的索引。
解题思路
二分查找的基本思想是将有序数组分成两部分,每次比较中间元素与目标值的大小,然后根据比较结果缩小查找范围,直到找到目标值或确定目标值不存在。
代码实现
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