二分法(折半查詢法)簡解

2021-10-20 10:46:09 字數 688 閱讀 1039

二分查詢法又稱折半查詢,是一種在有序陣列中查詢特定元素的搜尋演算法。

其優點是查詢速度快,缺點是要求待查表為有序錶可實用性較弱。

舉個例子:在一段有序陣列中查詢是否含有需要查詢的數,如果有請輸出該查詢的數在陣列的位置,輸出陣列的下標。如果沒有請輸出「找不到」。

#include

#include

inter

(int a,

int k,

int sz)

else

if(a[m]

>k)

else

//相等直接退出

}return-1

;}intmain()

;int k;

scanf

("%d"

,&k)

;//查詢的數字

int sz=

sizeof

(a)/

sizeof

(a[0])

;//陣列的長度

int ret=

er(a,k,sz)

;//er為函式

if(ret==-1

)else

return0;

}

總結:二分法對與初學者來說比較重要,需要掌握。

個人心得:需要提高質量,速度!

折半查詢法 二分法

在有序 設為公升序 表中,取中間元素作為比較物件,若給定值與中間元素的關鍵字相等,則查詢成功 若給定值小於中間元素的關鍵字,則在中間元素的左半區繼續查詢 若給定值大於中間元素的關鍵字,則在中間元素的右半區繼續查詢。不斷重複上述查詢過程,直到查詢成功,或所查詢的區域無該資料元素,查詢失敗。測試資料 1...

查詢 二分法查詢 折半查詢法

實現查詢指定數值在元素有序的陣列中儲存的位置 索引 返回該位置 索引 解題步驟 1.定義3個用來記錄索引值的變數,變數min記錄當前範圍最小索引值,初始值為0 變數max記錄當前範圍最大索引值,初始值為陣列長度 1 變數mid記錄當前當前範圍最中間元素的索引值,初始值為 min max 2 2.使用...

二分法查詢(折半查詢)

一 二分法查詢思想 首先從陣列的中間mid開始查詢,如果剛好等於要查詢的值,則返回這個數字的所在位置。如果要查詢的數字比mid值小,則讓mid 1,做為陣列的右邊界,重複 1 操做 如果要查詢的數字比mid大,則讓mid 1做為陣列的左邊界,重複 1 操作。如果left right時,還沒有找到該數...