一、列表查找:從列表中查找指定元素html
二、順序查找:從列表第一個元素開始,順序進行搜索,直到找到爲止。返回找到的那個索引
三、二分查找:從有序列表的候選區data[0:n]開始,經過對待查找的值與候選區中間值的比較,能夠使候選區減小一半。算法
二分查找:時間複雜度是O(logn)
二分查找的前提:列表是有序的
切片的複雜讀是O(n) #由於切的時候是賦值的spa
二分查找示例code
def serach(li,val): low = 0 #開始索引 high = len(li) - 1 #結束索引 while low<=high: mid = (low+high)//2 if li[mid] > val: #若是中間值比傳進來的值大就從中間值的左邊找 high = mid-1 elif li[mid]<val: low = mid +1 else: return mid else: return -1 li = list(range(0,101,2)) print(serach(li,98)) # ==================遞歸版的二分查找=========== def bin_serach_rec(li,val,low,high): if low<=high: mid = (low+high)//2 if li[mid] >val: return bin_serach_rec(li,val,low,mid-1,) elif li[mid]<val: return bin_serach_rec(li,val,mid+1,high) else: return mid else: return li = list(range(0,101,2)) print(serach(li,98))
一、列表排序htm
將無序列表變爲有序列表blog
二、應用場景排序
輸入:無序列表遞歸
輸出:有序列表索引