package search;
/**
* @author moon
* @create 2021-03-02 11:23
*/
public class BinarySearch {
public int binarySearch(int[] arry,int target){
//1.创建三个变量,分别执行待搜索序列的起点,终点和中间下表
int s=0;
int e=arry.length-1;
int m=(s+e)/2;
while (target!=arry[m]&&s<=e){
//3.因为每一次折半之后,搜索范围起点和终点的取值都发生了变化,所以需要重新计算中值下标m的取值
m=(s+e)/2;
//2.目标元素比中间元素值小,保留左侧区间
if(target<arry[m]){
e=m-1;
}
if(target>arry[m]){
s=m+1;
}
if(target==arry[m]){
return m;
}
}
return -1;
}
public static void main(String[]args){
int[]array=new int[]{1,3,4,6,8,9};
BinarySearch bs=new BinarySearch();
int target=3;
System.out.print(bs.binarySearch(array,target));
}
}
java折半查找
最新推荐文章于 2024-09-24 22:07:02 发布