python之二分查詢

2021-08-16 22:21:33 字數 635 閱讀 9867

首選,僅當列表是有序的時候,二分查詢才有用,函式binary_search 接受乙個有序陣列和乙個元素,規定low=0, high=len(list)-1,那麼每次都將檢查中間的元素:

mid=(high+low)//2   如果(high+low)不是偶數,python 3自動向下取整

guess=list[mid]

如果猜的數字小了,就相應的修改low

if guesslow=mid+1

如果猜的數字大了,就相應的修改high

完整**如下:

def binary_search(list,item):

low=

0high=len(list)-

1while low<=high:

mid=(high+low)//

2guess=list[mid]

if guess < item:

low = mid +

1if guess > item:

high = mid -

1if guess = item:

return mid #查詢到該數,則返回該數的索引值

return none

更多有關查詢和排序的**詳見我的github:

Python查詢演算法之二分查詢

從有序列表的初始候選區ls 0 n 開始,對待查詢的值與候選區中間的值比較,使得候選區規模減半 o logn 如果列表已經是有序的了,直接上二分 如果列表是亂序的,那麼要考慮查詢次數,如果查詢次數不頻繁,就用線性,因為排序的時間複雜度 o n 如果查詢次數頻率高,可以考慮先排序,再用二分 usr b...

查詢之二分查詢

二分查詢前提查詢的序列需要有序 十分好理解 取中間值與目標值對比查詢 注意下數值邊界 public static void main string args int arr2 int arr3 int index binarysearch arr,34 int index2 binarysearch...

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 ...