#include<iostream>
using namespace std;
//二分查找非递归
int Binary_Search1(int *num, int len,int target){
int low=0,hight=len-1,mid;
while(low<=hight){
mid=(low+hight)/2;
if(num[mid]==target)
return mid;
else if(num[mid]>target)
hight=mid-1;
else
low=mid+1;
}
return -1;
}
//二分查找递归
int Binary_Search2(int *num, int low, int hight, int target){
while(low<=hight){
int mid=(low+hight)/2;
if(num[mid]==target)
return mid;
else if(num[mid]>target)
return Binary_Search2(num,low,mid-1,target);
else
return Binary_Search2(num,mid+1,hight,target);
}
return -1;
}
int main(){
int num[14]={1,2,3,5,6,7,8,11,14,15,20,24,28,30};
cout<<Binary_Search1(num,14,11)<<endl;
cout<<Binary_Search2(num,0,14,11)<<endl;
return 0;
}
二分查找的递归与非递归
最新推荐文章于 2023-10-19 20:15:26 发布