java實現二分查詢法

2021-08-02 23:43:10 字數 875 閱讀 6635

二分查詢法:

我把他理解為折半排除法,就是把查詢的範圍分為兩半,排除其中一半,把另一半再分成兩半,再排除一半,再分兩半,逐漸把範圍縮小,直到找到需要查詢的元素,或者判定沒有這個元素。

使用二分查詢的前提是被查詢的是個有序的序列。

以整數型一維陣列為例,查詢陣列中有沒有某個數字

package search;

/***

*查詢陣列查詢陣列中有沒有數字8,如果有並返回它的索引

*普通的方法是遍歷陣列中所有的數來判斷是否和8相等

*二分法則是先把陣列分從中間分成兩半,可以理解為劃分成兩個陣列,按照原陣列的排序方式,判斷8的範圍在那個數字裡**/

public class search ;

int n=8;

//建立chazhao物件

chazhao ch=new chazhao();

//呼叫輸出

system.out.println(ch.chazhao(arr,n));    }}

package search;

public class chazhao {

//成員變數

//定義變數first表示陣列的首索引

int first;

//定以變數end表示陣列的尾索引

int end;

//定義變數mid表示陣列的中間索引

int mid;

public int chazhao(int arr,int n){

//把原陣列的索引作為初始值賦給first,end;

first=0;

end=arr.length-1;

//while迴圈,如果first與end相對,已經排除到了最後乙個數

while(first

java 實現二分查詢法

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。public class searchutils else if des srcarray middle else return 1 二分查詢 在一定範圍中查詢元素 param s...

java實現二分查詢法

二分查詢前提條件是存在一組資料已經排序好的,目標值每次都只需要跟臨界點那個值進行對比。當大於這個臨界值則,取 臨界值 1 右下標 的臨界值,再跟目標值對比反覆直至找到 當小於這個臨界值則,取 左下標 臨界值 1 的臨界值,再跟目標值對比反覆直至找到。簡單的二分查詢 注意退出的條件左下標大於右下標或者...

java 實現二分查詢法

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。折半查詢的演算法思想是將數列按有序化 遞增或遞減 排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點位置為比較物件,如果要找的元素值小 於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查詢區間縮小一半。折半查詢是一種高...