利用二分法查詢元素,並返回下標

2021-10-05 20:21:43 字數 688 閱讀 6246

二分查詢 (折半查詢),它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。

要使用二分查詢有兩個條件

1.必須是經過排序的資料集合

2.只適用於順序儲存的資料集合

話不多說,舉個例子

設資料集合

dkey=94(既要尋找的值)01

2345

67513

1742

4655

7094

設low=0,high=7,要比較元素的下標為mid。

每次尋找都要從陣列(即low和high)最中間的元素開始比較,也就是mid=(low+high)/2,若key>d[mid],即mid左邊的元素都小於key,然後low=mid+1,同理,當keyhigh時,跳出迴圈。

**表示:

(這裡我定義了個函式來實現)

int low=

0,high=陣列長度-1;

inthalfsearch

(int d,

int low,

int high,

int key)

else

if(a[mid]

else

}return-1

;//無法找到

}

最近才開始寫部落格,有點菜,請大佬多多指教

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

二分法查詢

前幾天csdn上說只有10 程式設計師能寫出正確的二分法查詢 so.我在看過二分法查詢方法後寫了乙個 一次測試成功.範圍 需要次數 10 4 100 7 1000 10 10000 14 100000 17 1000000 20 除了對特別小的陣列外,二分法查詢表現是非常優秀的.每次對範圍加倍可以建...