在有序(設為公升序)表中,取中間元素作為比較物件,若給定值與中間元素的關鍵字相等,則查詢成功;若給定值小於中間元素的關鍵字,則在中間元素的左半區繼續查詢;若給定值大於中間元素的關鍵字,則在中間元素的右半區繼續查詢。不斷重複上述查詢過程,直到查詢成功,或所查詢的區域無該資料元素,查詢失敗。
【測試資料】
(1)設有關鍵字序列k=。從鍵盤輸入上述8個整數,存放在陣列bub[8]中,並輸出其值。
(2)從鍵盤輸入21,查詢是否存在該資料元素,若存在,則輸出該資料元素在表中位置,否則給出查詢失敗的資訊。
(3)從鍵盤輸入25,查詢是否存在該資料元素,若存在,則輸出該資料元素在表中位置,否則給出查詢失敗的資訊。
#include int bub[8],pos;
bool bin_search(int low,int high,int x,int &pos)
return false;
}int main()
}
查詢 二分法查詢 折半查詢法
實現查詢指定數值在元素有序的陣列中儲存的位置 索引 返回該位置 索引 解題步驟 1.定義3個用來記錄索引值的變數,變數min記錄當前範圍最小索引值,初始值為0 變數max記錄當前範圍最大索引值,初始值為陣列長度 1 變數mid記錄當前當前範圍最中間元素的索引值,初始值為 min max 2 2.使用...
二分法查詢(折半查詢)
一 二分法查詢思想 首先從陣列的中間mid開始查詢,如果剛好等於要查詢的值,則返回這個數字的所在位置。如果要查詢的數字比mid值小,則讓mid 1,做為陣列的右邊界,重複 1 操做 如果要查詢的數字比mid大,則讓mid 1做為陣列的左邊界,重複 1 操作。如果left right時,還沒有找到該數...
查詢之折半二分法
折半二分法是針對已經排好序的資料,效率比順序查詢快很多。比如2的8次方個資料最多隻需要查詢8次就能找到了,但是前提是此資料已經排好序了!include using namespace std const int n 10 template void bsearch t data,t find,int...