关于二分法的模板!!(Python)
程序员文章站
2024-03-16 08:39:04
...
什么是二分法?
二分法的前提是你知道答案在某一个区间中,然后你需要在这个区间中去寻找答案。这样用二分法比较快,二分法用于查找一个在目标区间的答案。
Code
def binarySearch(nums, target): # 定义二分法的函数
if len(nums) == 0:
return -1
left = 0
right = len(nums)
while left < right: # 这里必须是<号,因为如果是<=号的话就会出现越界的情况
mid = (left + right) // 2
if nums[mid] == target: # 如果数值等于目标值,那么需要缩小右边界
right = mid
elif nums[mid] > target: # 如果数值大于目标值,那么需要缩小右边界
right = mid
elif nums[mid] < target: # 如果数值小于目标值,那么需要缩小左边界
left = mid + 1
# 这里返回left 或者right 都行, 因为 while 终止的条件是 left == right。
return left
上一篇: 【Java】Gson解析复杂数据
下一篇: Java Gson解析Json