思路:二分查找
代码:
#include <cstdio>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 110;
int main(){
// freopen("a.txt", "r", stdin);
int n, m, x;
int a[maxn];
while(cin >> n){
for(int i = 0; i < n; ++i){
cin >> a[i];
}
sort(a, a + n);
cin >> m;
for(int i = 0; i < m; ++i){
bool flag = false;
cin >> x;
int begin = 0, end = n - 1;
while(begin <= end){
int mid = begin + (end - begin) / 2;
if(a[mid] == x){
cout << "YES"<<endl;
flag = true;
break;
}
else if(a[mid] < x){
begin = mid + 1;
}
else{
end = mid - 1;
}
}
if(!flag) cout << "NO" <<endl;
}
}
return 0;
}

本文通过一个具体的在线编程练习题目,介绍了如何使用二分查找算法解决问题。代码中详细展示了二分查找的实现过程,包括输入处理、排序以及查找流程等关键步骤。
1328

被折叠的 条评论
为什么被折叠?



