《Python 每日一學》之二分法查詢

2021-08-28 11:01:18 字數 761 閱讀 1965

適用場景:

查詢物件必須為有序集合,不然前置的排序工作影響較大

集合內的物件必須可任意訪問,比如:鍊錶就不適使用此方法

時間複雜度: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...