首页 > 其他分享 >二分法查找数字位置

二分法查找数字位置

时间:2023-02-20 21:26:35浏览次数:32  
标签:index target nums 元素 二分法 start 查找 数字

二分法举例
请实现无重复数字的升序数组的二分查找
给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1
数据范围:0~2x10**5

class Solution:
#定义元素为nums,要找的数为target
  def search(self , nums: List[int], target: int) -> int:
#计算元素长度
    nums_len = len(nums)
#定义最小的数是start
    start = 0
#定义最大的数为end
    end = nums_len - 1
#二分法思想,中间值为index
    while start <= end:
      index = int((start + end) / 2)
#如果中间位置的值等于要找的要查询值,则返回该元素在元素中的位置
      if nums[index] == target:
        return index
#如果中间位置的值小于要查询的值,则选择较大数据的另一半元素继续查询
      elif nums[index] < target:
      start = index + 1
#否则,选择小于中间值的一半元素继续查询
      else:
        end = index - 1
#如果数据不在元素范围之内,返回-1
    return -1

标签:index,target,nums,元素,二分法,start,查找,数字
From: https://www.cnblogs.com/panfei-test-learn/p/17138944.html

相关文章