查找
顺序查找
def linear_search(li,val):
for index,v in enumerate(li):
if v==val:
return index
return None
def linear_search(li,val):
for i in range(len(li)):
if li[i]==val:
return i
return None
二分查找
用于以排序好的列表,left与right 用于维护候查区
def binary_search(li,val):
left=0
right=len(li)-1
while left<=right:
mid=(left+right)//2
if li[mid]==val;
return mid
elif li[mid]>val:
right=mid-1
elif li[mid]<val:
left=mid+1
return None