zl程序教程

您现在的位置是:首页 >  后端

当前栏目

二分查找万能模板-python

Python模板 查找 二分 万能
2023-09-11 14:17:12 时间

由九章算法-令狐提出

data = [1,3,6,8,8,12,88,943]
# 第一个等于target的索引位置
def binarySearch(nums,target):
    if not nums:
        return -1
    start, end = 0, len(nums)-1
    while start + 1 < end:
        mid = start + (end-start)//2        
        if nums[mid] == target:
            end = mid
        elif nums[mid] < target:
            start = mid
        else:
            end = mid
    if nums[start] == target:
        return start
    if nums[end] == target:
        return end
binarySearch(data, 8)
data = [1,3,6,8,8,12,88,943]
# 最后一个等于target的索引位置
def binarySearch(nums,target):
    if not nums:
        return -1
    start, end = 0, len(nums)-1
    while start + 1 < end:
        mid = start + (end-start)//2        
        if nums[mid] == target:
            start = mid
        elif nums[mid] < target:
            start = mid
        else:
            end = mid
    if nums[start] == target:
        return start
    if nums[end] == target:
        return end
binarySearch(data, 8)