#includeusing namespace std;int a[5]={1,2,3,4,5};int Bsearch(int x, int left,int right ){ if(left<=right) { int m=(left+right)/2; if(x a[m]) return Bsearch(x,m+1,right); else return m; } else return -1;}int main(){ int m=Bsearch(3,0,4); if(m==-1)cout<<"搜索失败"<
下面再来一个迭代的:
#includeusing namespace std;int main(){ int a[5]={1,2,3,4,5};//已排好序了 int left =0; int right =4; int x=6; while(left<=right) { int m=(left+right)/2; if(x a[m]) left =m+1; else {cout<<"搜索成功"<