欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于二分法的模板!!(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