顺序查找的算法比较直接,就是遍历数组,从头开始找。但是如果数据量比较大,很显然是比较慢的。
【题目描述】
给出 n 个不相同的正整数 a1,a2,a3,.... ,an,其中 n ≤ 10000,ai ≤ 109。
有 m 个查询,m ≤ 10000,每次查询 x 是否在数组中,存在输出 "Yes" ,否则输出 "No" 。
【输入样例】
8
7 13 4 5 8 1 11 9
2
13
15
【输出样例】
Yes
No
【参考程序】
//爱码岛编程
#include <iostream>
using namespace std;
const int MAXN = 10005;
int arr[MAXN];
int main() {
int n, m, x;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
// 查找 m 次,每次输出 x 是否存在于数组中
cin >> m;
for (int i = 0; i < m; i++) {
cin >> x;
bool flag = false; //不存在
for (int i = 0; i < n; i++) {
if (arr[i] == x) {
flag = true; //存在
break;
}
}
if (flag) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}