#include
int binary_search_recursive(int arr[], int left, int right, int query);
int main ()
{
int arr[10];
int left, right, query;
int i , res_r;
printf ("请输入数据:");
for (i = 0; i <= 9; i++)
scanf ("%d" , &arr[i]);
printf ("输入区间:");
scanf ("%d%d" , &left , &right);
printf ("输入要查找的数据:");
scanf ("%d" , &query);
res_r = binary_search_recursive(arr , left , right , query);
printf ("%d\n" , res_r);
return 0;
}
int binary_search_recursive(int arr[], int left, int right, int query)
{
int low = left , high = right , mid;
int flag = 0;
mid = (low + high) / 2;
if (low > high)
flag = -1;
if (query == arr[mid])
flag = 1;
if (arr[mid] > query)
binary_search_recursive(arr , low , mid - 1 , query);
else
binary_search_recursive(arr , mid + 1 , high , query);
if (flag == 1)
return mid;
if (flag == -1)
return -1;
}