昨天刷了cvte的一道笔试题写了这段测试代码
#include <stdio.h>
int * bsearch(int *t,int n,int x)
{
int lo = 0,hi = n - 1;
int i=0;
while( lo <= hi ){
printf("%d ",++i);
int mid = (hi + lo) / 2;
if(x < t[mid])
hi = mid - 1;
else if( x > t[mid])
lo = mid + 1;
else
return t + mid;
}
return NULL;
}
int main()
{
int a[] = {1,2,3,4,5,6,7};
printf(" %d",*bsearch(a,7,3));
return 0;
}