您的位置:首页 > 其它

二分查找

2010-07-06 10:52 134 查看
#include<iostream>
#include<cstdlib>
#include<vector>
#include<algorithm>
using namespace std;
bool binrary_find(int *a,int p,int r,int val){
if(p<=r){
int q=p+(r-p)/2;
if(a[q]==val)
return true;
else
if(a[q]>val)
return binrary_find(a,p,q-1,val);
else
return binrary_find(a,q+1,r,val);
}
return false;
}
int main()
{
int a[]={21,3,85,69,895,-85,263,52};
int len=sizeof(a)/sizeof(*a);
sort(a,a+len);
int val=0;
while(cin>>val){
if(binrary_find(a,0,len-1,val))
cout<<"Find/n";
else
cout<<"Not Find/n";
}
system("pause");
}


二分查找是针对已经排序的数列!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  system