Python 二分法查詢

2021-08-07 11:20:30 字數 1198 閱讀 1706

二分法演算法原理:陣列是有序陣列,

確定該期間的中間位置center

將查詢的值key與array[center]比較。若相等,查詢成功返回此位置;否則確定新的查詢區域,繼續二分查詢。

新區域的確定:如果key>arrey[center],則起始位置變為center+1,結束位置不變

如果key

每一次查詢與中間值比較,可以確定是否查詢成功,不成功當前查詢區間縮小一半。遞迴找,即可。

以下為**請參考:

1 def binarysearch(arr,key):

2     start=0

3     end=len(arr)-1

4     if key in arr:

5         while true:

6             center = int((start+end)/2)

7             if arr[center] > key:

8                 end = center-1

9             elif arr[center] < key:

10                 start = center+1

11             elif arr[center] == key:

12                 print(str(key)+'在陣列裡面的第'+str(center)+'    個位置')

13                 return arr[center]

14 15     else:

16         print('沒有該數字')

17 18 if __name__ == "__main__":

19     arr = [1,6,9,12,14,16,18,23,26,34,56,765]

20     while true:

21         key = input('請輸入要查詢的數字:')

22         if key ==  '':

23             print('謝謝使用')

24             break

25         else:

26             binarysearch(arr,int(key))

27 

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

python二分法查詢

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...

Python 二分法查詢

def binarysearch arr,value m 0 開始 n len arr 最後 while mmid m n 2 計算中間位置 if value arr mid 查詢成功,返回元素對應的位置 return mid elif value arr mid 在後面一半元素中繼續查詢 m mi...