C 折半查詢的實現

2021-10-24 08:49:05 字數 1009 閱讀 2870

折半查詢法也叫做二分查詢,顧名思義,就是把資料分成兩半,再判斷所查詢的key在哪一半中,再重複上述步驟知道找到目標key;

注意:(咳咳,敲黑板)折半查詢法僅適用於對已有順序的陣列、資料進行操作!!!

很顯然,折半查詢法相對於其他查詢方法例如順序查詢法效率要高很多;

下面我們來實際操作一下,了解二分查詢的奧義。

例如:要在陣列arr=;中查詢key=7的位置;首先,我們要先將陣列arr中的資料成員進行排序。arr=;

如圖所示:將該組資料小端記作low,大端記作high,中間值記作mid;

二分法查詢時,將所查詢的key與mid比較,例如key=7,即可縮小查詢範圍在mid和high之間;

如圖所示即可找到key=low=7;

注意:(敲黑板)如果中間數mid不是整數,需要進行取整。

**如下:

#include

using

namespace std;

intbinsearch

(int arr,

int len,

int key)

return-1

;//如果陣列中無目標值key,則返回-1;

折半查詢 java實現

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。author administrator public cl...

折半查詢演算法實現

折半查詢是一種比較高效的查詢方式,其基本思想是 在某個有序表中,取出中間的記錄作為比較物件,如果要查詢記錄的關鍵碼等於中間記錄的關鍵碼,則查詢成功 若要查詢記錄的關鍵碼小於中間記錄的關鍵碼,則在中間記錄的左半區繼續查詢 若查詢記錄的關鍵碼大於中間記錄的關鍵碼,則在中間記錄的右半區繼續查詢。不斷重複上...

C語言實現 折半查詢演算法

什麼叫折半?就是用已知的數與乙個有序數列序列號最中間的數相比較,縮小查詢範圍。先寫查詢函式binsearch,三次判斷。然後主函式呼叫。includeint binsearch int a,int x,int len if x a mid x a mid 時,右邊界變為中間下標 1 if x a m...