//前提是查找的数组已是有序
#include<cstdio>
//非递归
int binary(int *arr,int low,int high,int key)
{
while(low <= high)
{
int mid = (low + high) / 2;
if(key == arr[mid])
{
return mid;
}
else if(key > arr[mid])
{
low = mid + 1;
}
else
{
high = mid -1;
}
}
return -1;
}
//递归
int bin_rec(int *arr, int low, int high, int key)
{
if(low <= high)
{
int mid = (low + high) / 2;
if(key == arr[mid])
{
return mid;
}
else if(key > array[mid])
{
bin_rec(arr,mid+1,high,key);
}
else
{
bin_rec(arr,low,mid-1,key);
}
}
return -1;
}