一、列表查找:
index(),是线性查找,因为二分查找需要进行排序
1、顺序查找
def linear_search(data_set,value):
for ind,val in enumerate(data_set):
if val==value:
return ind
else:
return
时间复杂度O(n),从头到尾循环一遍
2、二分查找
def binary_search(data_set,value):
left=0
right=len(data_set)-1
while left<right:
mid=(left+right)//2
if data_set[mid]==value:
return mid
elif data_set[mid]<value:
left=mid+1
else:
right=mid-1
return 0
时间复杂度O(logn)
原视频可参考:https://www.bilibili.com/video/BV1uA411N7c5?p=11&spm_id_from=pageDriver&vd_source=9baef983d7bc08245d4dee5c9e676ee9