二分搜索技術(shù)的基本思想是將n個元素分為個數(shù)大致相同的兩半,取a[n/2]與x作比較
#include<iostream>
using namespace std;
int binary_search(int a[],int low,int high,int key){
while(low<=high){
int mid=(low+high)/2;
if(key==a[mid]) return mid;
else if(key>a[mid]) low=mid+1;
else high=mid-1;
}
return -1;
}//二分查找迭代實現(xiàn)
int binary_search1(int a[],int low,int high,int key){
while(low<=high){
int mid=(low+high)/2;
if(key==a[mid]) return mid;
else if(key>a[mid]) return binary_search1(a,mid+1,high,key);
else return binary_search1(a,low,mid-1,key);
}
return -1;
}//二分查找遞歸實現(xiàn)
int main(){
int array[10]={0,1,2,3,4,5,6,7,8,9};
cout<<binary_search1(array,0,9,5);
}