给定已经排好序的N个元素a[0,m-1],找到特定元素x
因为是拍好的序的N个元素,所以可以通过比较的方法不停的判断其属于哪个区间,通过二分每次只需在1/2区间里选择
int binarySearch(int[] a,int x,int n){
//在数组中搜索x,找到返回位置,否则返回-1
int left=0;int right=n-1;
while(left<=right){
int middle=(left+right)/2;
if(x===a[middle]) return midlle; //找到该元素
if(x>a[middle]) left = middle+1; //该元素大于中间游标,选择右区间,左游标右移
else right=middle-1;//该元素小于中间游标,选择左区间,右游标左移
}
return -1;
}