设m为要查找的数字
二分查找的适用条件——数据是单调的,即递增的或者递减的
#include<stdio.h>
int two(int a,int b);
int m=7;
int main()
{
int a[]={1,2,3,4,5,6,7,8,9,10};
printf("这个数是%d",two(a[0],a[9]));
}
int two(int a,int b)
{
if((a+b)/2==m)
{
return (a+b)/2;
}else{
if((a+b)/2>m){
return two(a,(a+b)/2-1);
}else{
return two((a+b)/2+1,b);
}
}
}
((a+b)/2-1 和 (a+b)/2+1的 -1,+1是为了防止两端数字取不到)