public class arithmetic {
public static void main(String[] args) {
int [] arr={1,2,5,7,9,13,16};
int result = binarySerach(9, arr);
System.out.println("结果:"+result);
}
public static int binarySerach(int ref, int [] a){
int low=0;
int high=a.length-1;
int mid=0;
//low<=high,不加等号就会漏数据
while(low<=high){
mid=(low+high)/2;
if (ref==a[mid]) {
return mid; //返回查询结果
}else if (ref<a[mid]) {//查询左半块数据
high=mid-1;
}else{//查询右半块数据
low=mid+1;
}
}
// 没有查询到,输出-1
return -1;
}
}
转载于:https://www.cnblogs.com/Actexpler-S/p/7464028.html
相关资源:JAVA上百实例源码以及开源项目