查詢有序陣列元素 二分法

2021-09-19 12:27:53 字數 749 閱讀 7186

查詢的方法多種多樣,今天提到的就是對於乙個有序陣列而言最方便最高效率的方法——二分法,也叫折半查詢。

具體**如下:

二分法,也叫折半查詢

#include

#include

intb_search

(int a,

int left,

int right,

int k)

else

if(a[mid]

< k)

else

return

(mid);}

return(-

1);}

intmain()

;int k =6;

int left =0;

int right =

(sizeof

(a)/

sizeof

(a[0])

)-1;

i =b_search

( a, left, right, k);if

(-1== i)

else

system

("pause");

return0;

}

注意點:

1.傳引數時要傳陣列左右邊界指標過去,這樣可以靈活的控制查詢區域,切記不可以在函式的內部求陣列的長度。

2.在計算陣列長度時用sizeof(a) / sizeof(a[0]),也可以設為巨集定義。

二分法查詢有序陣列

package array public class testbinarysearch 指定查詢的元素 int num 12 用二分法查詢,返回索引 int start 0 int end arr.length 1 end的設定應該為陣列最後一位 int index 1 用於標誌是否查詢到指定元素 ...

有序陣列中二分法查詢

二分法查詢適用於資料量較大時,但是資料需要先排好順序。首先,從陣列的中間元素開始搜尋,如果該元素正好是目標元素,則搜尋過程結束,否則執行下一步。如果目標元素大於 小於中間元素,則在陣列大於 小於中間元素的那一半區域查詢,然後重複步驟1的操作。如果某一步陣列為空,則表示找不到目標元素。時間複雜度為 o...

二分法查詢順序陣列

程式大致內容為指定乙個順序的陣列,然後輸入想要查詢的key數字,在給定陣列用二分發查詢,找到返回位置,找不到返回 1 程式如下 include include includeint binary search int arr,int key,int sz else return 1 int main...