在n个已排好序(设为从小到大)的数据(数或字符串)中查找某一个数据,如果找到了,就指出其在n个数中的位置;否则给出无该数据的信息。请用递归的方法实现二分查找来实现这一查找过程。
#include<stdio.h>
int half(int left, int right, int key,int*a)
{
if (left < right)
{
int mid = (left + right) / 2;
if (a[mid] == key)
return mid;
else if (a[mid] > key)
return half(left, mid - 1, key,a);
else
return half(mid + 1, right, key,a);
}
return -1;
}
int main()
{
int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
printf("%d\n", half(0, 9, 1, a));
return 0;
}