二分查找(python)
具体做法:
- step 1:从数组首尾开始,每次取中点值。
- step 2:如果中间值等于目标即找到了,可返回下标,如果中点值大于目标,说明中点以后的都大于目标,因此目标在中点左半区间,如果中点值小于目标,则相反。
- step 3:根据比较进入对应的区间,直到区间左右端相遇,意味着没有找到.





def search(self , nums: List[int], target: int) -> int:
# write code here
l = 0
r = len(nums) - 1
# 从数组首尾开始,直到二者相遇
while l <= r :
# 每次检查中点的值
m = int((l+r)/2)
if nums[m] == target:
return m
# 进入左的区间
if nums[m] > target:
r = m - 1
# 进入右区间
else:
l = m + 1
# 未找到
return -1

浙公网安备 33010602011771号