遞歸封神椎镣!
#include <iostream>
using namespace std;
int BinarySearch_I(int *a,const int x,const int n);//迭代查找迁客,x為查找的關(guān)鍵字,n為數(shù)組長度
int BinarySearch_R(int *a,const int x,int left,int right);
int main(){
? ? int a[]={1,2,3,8,7,6,2};
? ? cout<<"迭代查找";
? ? cout<<BinarySearch_I(a,3,7);
? ? cout<<"遞歸查找";
cout<<BinarySearch_R(a,3,0,6);
return 0;
}
int BinarySearch_I(int *a,const int x,const int n){? //迭代查找
int left=0;
int right=n-1;
int middle=(left+right)/2;
while(left<=right){
if(x>a[middle]){
left=middle;
middle=(left+right)/2;
}
else if(x<a[middle]){
? ? right=middle;
middle=(left+right)/2;
}
else? ?
return middle;?
? }
return -1;
}
int BinarySearch_R(int *a,const int x,int left,int right){ //遞歸
if(left<=right){
int middle=(left+right)/2;
if(x<a[middle]){
return BinarySearch_R(a,x,left, middle-1);
}
else if(x>a[middle]){
return BinarySearch_R(a,x,middle+1,right);
}
else return middle;
? ? }
? ? else return -1;
}
最大的感慨咧织,代碼光看是不行的。要實(shí)踐胳施。知行合一缸榄,方為上策。