適用場景:
查詢物件必須為有序集合,不然前置的排序工作影響較大
集合內的物件必須可任意訪問,比如:鍊錶就不適使用此方法
時間複雜度:o(log2n),n 表示元素個數
空間複雜度:s(n),n 表示元素個數
數學知識複習:
log2n: log 以 2 為底 n 的對數
對數:如果 2 的 x 次方等於 n ,那麼 x 就等於 log2n 的對數
**實現:
def
binary_search
(needle, haystack)
:min
,max=0
,len
(haystack)-1
while
min<=
max:
midpoint =
(min
+max)//
2# 向下取整數
python二分法查詢 python之二分法查詢
二分法查詢主要的作用就是查詢元素 規則.掐頭結尾取中間,必須是有序列 二分法查詢 需要你明白和掌握 lst 1,3,5,7,12,36,68,79 n int input 請輸入乙個數 left 0 right len lst 1 while left right mid left right 2 ...
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...
演算法之二分法
演算法 是是一種高效解決問題的辦法 需求 有乙個按照從小到大順序排列的數字列表 需要從該數字列表中找到我們想要的那個乙個數字 如何做更高效?nums 3,4,7,10,13,21,43,77,89 find num 10nums 3,4,13,10,2,7 89 nums.sort 首先進行排序 p...