一般方法
int bsearch(int arr[], int l, int u, int k)
{
if(l > u) return -1;
int m = (l + u) / 2;
if(arr[m] == k) return m;
if(arr[m] > k) return bsearch(arr, l, m - 1, k);
else return bsearch(arr, m + 1, u, k);
}
改进
一般方法
int bsearch(int arr[], int l, int u, int k)
{
if(l > u) return -1;
int m = (l + u) / 2;
if(arr[m] == k) return m;
if(arr[m] > k) return bsearch(arr, l, m - 1, k);
else return bsearch(arr, m + 1, u, k);
}
改进