#include <stdio.h>
int BinarySearch(int r[],int low,int high,int k){
int mid;
if (low>high){
//若找不到,则返回-1,这也是递归终止条件
return -1;
}
else{
mid=(low+high)/2;
//在顺序数组中,判断k在左边还是右边
if (k<r[mid]){
return BinarySearch(r,low,mid-1,k);
}
else if(k>r[mid]){
return BinarySearch(r,mid+1,high,k);
}
//如果左右都不是,那k就在中间
else{
return mid;
}
}
}
int main(){
int input;
int arr[]={1,3,5,7,9,15,17,19,21,23,25,27,31};
scanf("%d",&input);
printf("%d",BinarySearch(arr,0,sizeof(arr)/sizeof(arr[0])-1,input));
return 0;
}
© 版权声明
1. 除特殊说明外,本网站所有原创文章的版权归作者所有,未经授权,禁止以任何形式(包括但不限于转载、摘编、复制、镜像等)发布至任何平台。
2. 论文总结类文章中涉及的图表、数据等素材,版权归原出版商及论文作者所有,仅为学术交流目的引用;若相关权利人认为存在侵权,请联系本网站删除,联系方式:i@smallbamboo.cn。
3. 违反上述声明者,将依法追究其相关法律责任。
2. 论文总结类文章中涉及的图表、数据等素材,版权归原出版商及论文作者所有,仅为学术交流目的引用;若相关权利人认为存在侵权,请联系本网站删除,联系方式:i@smallbamboo.cn。
3. 违反上述声明者,将依法追究其相关法律责任。
THE END
暂无评论内容