//针对已经排序好的数组进行查找(对上面代码进行的改进)
public static boolean binarySearch(int[]array,int target){
int left=0;
int right=array.length-1;//下标
int mid=(left+right)/2;
while(array[mid]!=target&&right>left){
System.out.println("进来"+"中间值为:"+array[mid]);
if(array[mid]>target){
right=mid-1;
}else if(array[mid]<target){
left=mid+1;
}
mid=(left+right)/2;
//判断在缩小范围后,新的left或者right是否会将target排除
if(array[right]<target){
break;//若缩小后right比target小,即target不在数组中
}else if(array[left]>target){
break;//若缩小后left比target大,即target不在数组中
}
}
return(array[mid]==target);
}
//main方法测试
public static void main(String[] args) {
int a[]= {1,2,5,6,7};
int target=2;
/**
* 二分法
*/
/*boolean c=binarySearch(a,target);
System.out.println("c="+c);*/
}
希望对你有所帮助!