陣列元素的查詢 二分法查詢

2022-06-24 13:18:09 字數 936 閱讀 3937

1/*2

* 二分法查詢演算法是基於排序的基礎之上(類庫中好像有)

3* 利用二分法對陣列元素程序查詢111(下標為0), 222, 333, 444, 555, 666, 777, 888

4* 查詢原理

5* 找666這個元素的下標,此元素下標是5.

6* 陣列元素的下標為0——7

7* 通過二分法查詢(0+7)/2-->中間元素下標:3

8* 拿著這個元素和目標元素對比:

9* 中間元素是:arr[3]-->444

10* 444 < 666

11* 被查詢的元素666在目前中間元素444的右邊。

12* 所以開始元素的下標從0變成3 + 1 = 4

13* 再重新計算乙個中間元素的下標:

14* 開始下標是:4 + 1 = 5

15* 結束下標是:7

16* (5 + 7)/ 2 --> 6

17* 中間元素是:arr[6]-->777

18* 777 > 666

19*/

20public

class

erfen ;

23int index = erfen(arr, 666);

24 system.out.println(index == -1 ? "這個數不存在!" : "這個數的下標為:" +index);25}

2627

private

static

int erfen(int arr, int

i) else

if (arr[mid] 42return -1;43}

4445 }

二分法查詢

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

二分法查詢

演算法 當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。主要思想是 設查詢的陣列區間為data start,end 1 確定該期間的中間位置pos將查詢的值m與data pos 比較。若相等,查詢成功返回此位置 否則確定新的查詢區域,繼續二分查詢。區域確定如下 data pos m ...

二分法查詢

二分法查詢 對有序元素集合的查詢,又叫折半查詢。思路 假設公升序 將查詢元素與集合中間元素比較,相等則返回 若查詢元素小於集合中間元素,則在集合左半部分進行二分查詢 若查詢元素大於集合中間元素,則在集合右半部分進行二分查詢 首先判斷要查詢的範圍正確性,如果查詢開始位置大於結束位置則返回未找到 sf....