python 二分查找的三种方式
2021-03-28 12:26
标签:middle pre lse 方法 二分 class ret turn def ?分查找. 每次能够排除掉一半的数据. 查找的效率非常高. 但是局限性比较大. 必须是有序列才可以使用二分查找 要求: 查找的序列必须是有序序列. 三种方法: 1.纯算法 2.递归法 3.另类方法 python 二分查找的三种方式 标签:middle pre lse 方法 二分 class ret turn def 原文地址:https://www.cnblogs.com/python960410445/p/13633582.htmllst = [11, 22, 33, 44, 55, 66, 77, 88, 99, 123, 234, 345, 456, 567, 678, 789]
n = 567
left = 0
right = len(lst)-1
count = 1
while left lst[middle] :
left = middle + 1
elif n
# lst = [11, 22, 33, 44, 55, 66, 77, 88, 99, 123, 234, 345, 456, 567, 678, 789]
def binary_search(n,left,right):
if left lst[middle]:
left = middle + 1
else :
return middle
return binary_search(n,left,right) # 不加return返回永远是None
else :
return -1 #没有找到
print(binary_search(567,0,len(lst)-1)
def biinary_search(ls,target):
left = 0
right = len(ls) - 1
if left > right:
print("不不在这?里里")
middle = (left + right) // 2
if target ls[middle]:
return binary_search(ls[middle+1:], target)
else:
print("在这?里里")
binary_search(lst, 567)