#include<iostream>
using namespace std;
int binarySearchRecurse(int searchKey, int array[], int low, int high)
{
int keyPos = -1;
if(low <= high)
{
int mid = low +((high - low + 1) >> 1);
if(searchKey == array[mid])
{
keyPos = mid;
}
else if(searchKey > array[mid])
{
keyPos = binarySearchRecurse(searchKey, array, mid + 1, high);
}
else
{
keyPos = binarySearchRecurse(searchKey, array, low, mid - 1);
}
}
return keyPos;
}
int searchSortedArrayRecurse(int searchKey, int *array, int arrLen)
{
int low=0;
int high=arrLen - 1;
int keyPos=binarySearchRecurse(searchKey, array, low, high);
return keyPos;
}
void printArray(int array[], int arrLen)
{
for(int i=0;i < arrLen;++i)
{
cout << array[i] << " ";
}
cout << endl;
}
int main()
{
int a[]={1,2,3,4,6,7,8};
int arrayLen=sizeof(a)/sizeof(int);
printArray(a, arrayLen);
cout<<"7的位置为:"<<searchSortedArrayRecurse(7,a,arrayLen)<<endl;
return 0;
}