#12244. 珅泽教育CSP-J第一轮模拟考第二十四套 第 16 题
珅泽教育CSP-J第一轮模拟考第二十四套 第 16 题
二、阅读程序(判断题正确填 A、错误填 B;除特殊说明外,判断题 2 分,选择题 3 分,共计 40 分)
程序一:两种排序输出
#include <iostream>
using namespace std;
const int MAXN = 1000050;
int n, a[MAXN], a1[MAXN], b[MAXN], lim;
void solve1() {
for (int i = 1; i <= n; i++)
b[a[i]]++; // ①
for (int i = 1; i <= lim; i++) {
if (b[i]) // ②
cout << i << " ";
}
cout << endl;
}
void solve2() {
int cnt = 0, flag;
for (int i = 1; i <= n; i++) {
flag = false;
for (int j = 1; j <= n - 1; j++) {
if (a[j] > a[j + 1]) {
swap(a[j], a[j + 1]);
cnt++;
flag = true;
}
}
//if (flag == false)
// break;
}
for (int i = 1; i <= n; i++)
cout << a[i] << " ";
cout << endl;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
a1[i] = a[i]; // ③
lim = max(a[i], lim); // ④
}
solve1();
for (int i = 1; i <= n; i++)
a[i] = a1[i];
solve2();
return 0;
}
已知 ,。
solve2函数实现了选择排序。
{{ select(1) }}
- 正确
- 错误