二分查詢python例項

2021-09-12 16:24:50 字數 862 閱讀 1879

二分查詢的前提是,資料的有序性,如果拿到的不是有序的,可以先用sort()函式排序。二分查詢的思路很簡單,就是把資料取中點分成連段,所以也叫折半查詢,相對於順序查詢,從理論上節省時間,提高效率了。來個圖演示一下。

先是 ![在這裡插入描述](

假設要查詢的數num大於start,又小於mid,那麼end=mid-1,start還是不變,這樣的話查詢範圍就縮小了一半。

假設要查詢的數num大於mid,又小於end,那麼start=mid+1,end還是不變。

下面來用**實現。

list_01 = [1,2,3,4,5,6,12,14,15,21,23,25,32]

num = int(input(『請輸入您要查詢的數:』))

start = 0

end = len(list_01) - 1

while start<=end:

mid = (start+end)//2#向下取整

if list_01[mid] == num:

print(『找到了』)

break

elif list_01[mid]>num:

end = mid -1

elif list_01[mid]

start = mid + 1

else:

print(『沒找到』)

學習要堅持,今天的努力,是為了美好的明天!

Python二分查詢

二分查詢又稱折半查詢,首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成...

python 二分查詢

搜尋過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜尋過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為空,則代表找不到。這種搜尋演算法每一次比較都使搜尋範圍縮小一半 param array ...

二分查詢(Python)

演算法介紹 二分查詢要求陣列為有序排列,每次取中間的數與target進行比較,若相等,則查詢成功 若中間數較大,則在前一部分查詢,反之,在後一部分查詢。其時間複雜度為o logn 演算法實現def binarysearch nums,target if not nums return false s...