题目是这样的输入元素个数和元素值,随后输入一个查找数,查询是否存在。
#include<iostream>
#include<algorithm>
using namespace std;
int erfenSearch(int n,int a[],int aim){
int left=0,right=n-1; //左标和右标
while(left<=right){
int mid =(left+right)/2;
if(a[mid]==aim){
return mid;
}
if(a[mid]<aim){
left = mid + 1;
}
else{
right = mid -1;
}
}
return -1;
}//二分查找,数组必须有序
int main(){
int n;//元素个数
int a[1000];//定义数组
int aim;//寻找目标
int ans;//保存状态
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
cin>>aim;
ans = erfenSearch(n,a,aim);
if(ans==-1){
cout<<"未找到"<<endl;
}
else{
cout<<"index: "<<ans+1<<endl;
}
return 0;
}
样例