马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 努力学习只是 于 2017-10-14 15:40 编辑
折半递归,输出怎么都是错的,但是又看不出错在哪里,求助!#include"iostream"
using namespace std;
int a[11]={1,2,3,14,15,23,26,29,35,41,49};
int bresearch(int b,int low,int high){
if(low<=high){
int mid=(low+high)/2;
if(a[mid]==b)return mid+1;
if(a[mid]>b)
bresearch(b,low,mid-1);
if(a[mid]<b) bresearch(b,mid+1,high);
}
}
int main(){
int n,key,high,low;
n=11;
high=n-1;
low=0;
cout<<"input a number:";
cin>>key;
cout<<bresearch(key,low,high);
return 1;
}
|