//二分查找 - 递归实现
int binary_search(int array[],int left,int right,int key)
{
if(array[left] > key || array[right] < key)
return 0;
if(array[(left+right)/2] > key)
binary_search(array,left,(left+right)/2 - 1,key);
else if(array[(left+right)/2] < key)
binary_search(array,(left+right)/2 + 1,right,key);
else
{
printf("found\n");
return 1;
}
return 0;
}
int main(){
int array[] = {1,3,5,7,8,9,20};
binary_search(array,0,sizeof(array)/sizeof(array[0])-1,9);
}