//二分法查找
#define n 9
#include "stdio.h"
int search(int *a,int key,int row,int upper);
void main()
{
//数组a
int a[n]={10,20,30,50,76,80,90,95,108};
//初始化
int key,ret;
key = 76;
//调用
ret=search(a,key,0,n-1);
//输出
if(ret!=-1){
printf("共检查%d次\n",ret);
}
else
{
printf("no!");
}
}
int search(int *a,int key,int row,int upper)
{
int mid=0;
int k=0;
while(row<upper)
{
mid=(int)((upper+row)/2);
if(key==mid){
break;
}
//在右边
else if(key>mid){
row=mid+1;
}
else
upper=mid-1;
k++;
}
return k;
}