在前面我们介绍了二分查找循环的实现二分查找
接下来用递归实现二分查找
int BinarySearch(int* array,int left,int right,int data)
{
int mid = left+((right-left)>>1);
if(left <= right)
{
if(array[mid] == data)
return mid;
else if(array[mid] > data)
return BinarySearch(array,left,mid-1,data);
else
return BinarySearch(array,mid+1,right,data);
}
return -1;
}
void funtest()
{
int array[10] = {1,2,3,4,5,6,7,8,9};
int left = 0;
int right = sizeof(array)/sizeof(int)-1;
int ret = BinarySearch(array,left,right,8);
cout<<ret<<endl;
}
int main()
{
funtest();
getchar();
return 0;
}