二分法查詢

2021-05-22 13:25:42 字數 481 閱讀 4518

前幾天csdn上說只有10%程式設計師能寫出正確的二分法查詢**

so.我在看過二分法查詢方法後寫了乙個**一次測試成功. 

範圍 需要次數

10 4

100 7

1000 10

10000 14

100000 17

1000000 20

除了對特別小的陣列外,二分法查詢表現是非常優秀的.

每次對範圍加倍可以建立出乙個數列,它是2的冪,假設s表示步數,r表示範圍,則有

r=2s

當我們知道查詢的範圍r,求步數s時.就是相當於求某數指數函式的反函式即對數.則公式表示為:

s=log2(r)

如何計算呢,大多數計算器都有log功能,通常是以10為底來求對數,但是通過結果乘以3.322可以轉換成以2為底的對數

log10(100)=2;log2(100)=2乘以3.322 = 6.644 四捨五入為7正好是上面資料對照表100對應的7次.

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

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

二分法查詢

演算法 當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。主要思想是 設查詢的陣列區間為data start,end 1 確定該期間的中間位置pos將查詢的值m與data pos 比較。若相等,查詢成功返回此位置 否則確定新的查詢區域,繼續二分查詢。區域確定如下 data pos m ...