演算法學習之二——查詢
阿新 • • 發佈:2022-04-15
查詢:在一些元素中,通過一定的方法找出與給定關鍵字相同的資料元素的過程。
列表查詢(線性表查詢):從列表中查詢指定元素
輸入:列表、待查詢元素
輸出:元素下表(未找到元素時一般返回None或-1)
內建列表查詢函式:index()
順序查詢(Linear Search)
順序查詢:也叫線性查詢,從列表第一個元素開始,順序進行搜尋,直到找到元素或搜尋到列表最後一個元素為止。 程式碼: def linear_search(data_set,value): for i in range(range(data_set)): if data_set[i]==value: return i return 時間複雜度:O(n)
二分查詢(Binary Search)
又叫折半查詢,從有序列表的初始候選去li[0:n]開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。 程式碼: def bin_search(data_set,value): low=0 high=len(data_set)-1 while low<=high: mid(low+high)//2 if data_set[mid]==value: return mid elif data_set[mid]>value: high=mid-1 else: low=mid+1 時間複雜度:O(logn)