二分查找(python)

本文介绍了一种高效的查找算法——二分查找,并通过一个具体的Python实现示例进行了详细讲解。该算法适用于已排序的序列,通过不断缩小搜索范围来提高查找效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二分查找

前提:序列有序


start                                                   middle                                                          end

结束条件:

1)找到了,mid就是其位置

2)没找到,start > end


aList=[1,3,5,7,9,11,13,15,17,19]
x=int(input("请输入要查找的整数:"))
start=0
end=len(aList)-1
while start<=end:
       mid=(start+end)//2                  #除取整
       if aList[mid]==x:
              break                        #两种情况:当 start>end ,退出,到if start<=end:
       elif x<aList[mid]:                  #前半段
              end=mid-1
       else:
              start=mid+1
if start<=end:
       print("找到了,第%d个数是%d."%(mid+1,x))
else:
       print("没找到,整数%d不在列表中。"%x)

注:在计算机中记小数的整数部分更方便,所以mid = (start+end)//2,取整数





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值