- 二分查找:
* a:前提条件:已排序的数组*
b:确定low与high的值,计算中间点的索引
low=0,hight=n-1 mid=(low+high)/2
c:根据中间值索引对应的元素值,与要查找的数num进行比较
如果a[mid]==num,找到
如果a[mid]>num,在中间点的左边,修改high=mid-1
如果a[mid]< num,在中间点的右边,修改low=mid+1
public class Demo022 {
public static void main(String[] args) {
int[] a={1,2,3,4,5,6,9};
int high=a.length-1;
int n=9;
int mid=0;
int low=0;
boolean flag=false;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==n){
flag=true;
break;
}else if(a[mid]>n){
high=mid-1;
}else if(a[mid]<n){
low=mid+1;
}
}
if(flag){
System.out.println("找到了");
System.out.println("下标是:"+mid);
}else {
System.out.println("查不出来");
}
}
}