二分查找法 ← Python实现

【二分查找法】
★ 二分查找,是一种效率较高的查找方法。但是,二分查找要求元素按关键字有序排列。
★ 二分查找每一次查找都使查找范围缩小一半,与顺序查找相比,很显然会提高查找效率。为了标记查找过程中每一次的查找区间,分别用low和high来表示当前查找区间的下界和上界,mid=\left \lfloor (low+high)/2 \right \rfloor为区间的中间位置。

【算法分析】
二分查找要求
元素按关键字有序排列。

【算法代码】

def binarySearch(lst, key):
    low=0
    high=len(lst)-1
      
    while low<=high:
        mid=(low+high)//2
        if key<lst[mid]:
            high=mid-1
        elif key==lst[mid]:
            return mid
        else:
            low=mid+1
      
    return -1

lst=list(map(int,input().split()))
key=int(input())
t=binarySearch(lst,key)
print(t)


'''
in:
1 3 6 7 9
7

out:
3
'''




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值