【非对称】
1----------------------------------------------------------------------------------
int *bsearch(int *array, int len, int x){
int *low = array;
int *high = low + len;
while(low < high){
int *mid = low + ((high - low) >> 1);
if(x < *mid){
high = mid;
}else if(x > *mid){
low = mid + 1;
}else{
return mid;
}
}
return NULL;
}
2----------------------------------------------------------------------------------
int *bsearch(int *array, int len, int x){
int low = 0;
int high = len;
while(low < high){
int mid = (low + high) >> 1;
if(x < t[mid]){
high = mid;
}else if(x > t[mid]){
low = mid + 1;
}else{
return array + mid;
}
}
return NULL;
}
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
2[对称]
int *bsearch(int *array, int len, int x){
if(len == 0)
return;
int low = 0;
int high = n - 1;
int mid = (low + high) >> 1;
if(x < t[mid]){
high = mid - 1;
}else if(x > t[mid]{
low = mid + 1;
}else{
return array + mid;
}
return NULL;
}