#include<stdio.h>
//查找成功则返回所在下标否则返回-1
int binsearch(int A[], int n,int a)
{
int low, high, mid;
low = ;
high = n -;
while ( low <= high) { /// 这里必须是 <=
mid = (low+high) / 2;
if (A[mid] == a)
return mid;
else if(A[mid]<a)
low = mid +;
else
high=mid-;
}
return -;
}
int main()
{ int a[]={,,,,};
printf("%d",binsearch(a,,));
}
//二分查找,递归算法
#include <iostream>
#include<stdio.h>
using namespace std;
int binSearch(int a[],int low,int high,int b)
{
int mid = (high-low)/;
if(a[mid] == b) return mid;
if(a[mid] > b) binSearch(a,low,mid-,b);
if(a[mid] < b) binSearch(a,mid+,high,b);
}
int main()
{ int a[] = {,,,,}; int yy;
yy = binSearch(a,,,);
printf("%d",yy);
return ;
}