python二分法查找索引位置_python3 二分法查找

'''二分法查找

有序列表

掐头去尾取中间

查找列表中xx在不在列表中,在,则返回索引值'''

#lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, 89, 99] #使用in判断,不使用二分法#n = 49#for i, v in enumerate(lst):#if v == n:#print("找到了,索引为%d" % i)#break#else:#print("没找到.")

'''二分查找'''

#lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, 89, 99]#n = 49#left = 0#right = len(lst) - 1#while left <= right:#mid = (left + right) // 2#if n > lst[mid]:#left = mid + 1#elif n < lst[mid]:#right = mid - 1#else:#print("找到了,索引为:%d" % mid)#break#else:#print("没找到.")

'''使用递归调用完成二分法查找'''lst= [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, 89, 99]

n= 49

defbinarySearch(lst, n, left, right):if left <=right:

mid= (left + right)//2

if n

right= mid - 1

elif n >lst[mid]:

left= mid + 1

else:return "找到了,索引为:%d" %midreturnbinarySearch(lst, n, left, right)else:print("没找到.")return -1ret= binarySearch(lst, n, 0, len(lst)-1)print(ret)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值