二分查找的两种方法:递归和非递归方法。
非递归方法:
int bin_search(int a[],int low,int high,int num)
{
int mid;
if(low>high)
return -1;
while(low<=high) //low要小于等于high,不然头和尾的数字查找出错
{
mid=(high-low)/2+low; //不选择mid=(high+low)/2是因为会有数值溢出的问题,mid可能超出数据类型所能定义的范围
if(a[mid]==num)
return mid;
else