1.递归版本
int binarySearch(int a[],int low,int high,int x){
if(low>high)return -1;
int mid=(low+high)/2;
if(a[mid]==x)return mid;
if(a[mid>x]){
return binarySearch(a,low,mid-1,x);
}else{
return binarySearch(a,mid+1,high,x);
}
}
2.非递归版本
int binarySearch(int a[],int low,int high,int x){
int mid=0;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==x)return mid;
if(a[mid]>x){
high=mid-1;
}else{
low=mid+1;
}
}
return -1;
}