#12168. 珅泽教育CSP-J第一轮模拟考第二十二套 第 27 题
珅泽教育CSP-J第一轮模拟考第二十二套 第 27 题
二、阅读程序(程序输入不超过数组或字符串定义的范围;除特殊说明外,判断题 2 分,选择题 3 分,共计 40 分)
程序(2)
#include <iostream>
using namespace std;
int a[100005], b[100005], n, m;
void very_quick_sort(int l, int r, int p, int q) {
if (l >= r || p > q) { // ①
return;
}
int mid = (l + r) / 2;
int p0 = p - 1;
int q0 = q + 1;
for (int i = p; i <= q; i++) {
if (a[i] > mid) b[++p0] = a[i];
else b[--q0] = a[i];
}
for (int i = p; i <= q; i++)
a[i] = b[i];
very_quick_sort(mid + 1, r, p, p0);
very_quick_sort(l, mid, q0, q);
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++)
cin >> a[i];
very_quick_sort(1, m, 1, n);
// ②
for (int i = 1; i <= n; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
保证输入的 不超过 , 不超过 ,且 。
- 若输入数据为:
10 10
10 4 5 2 2 3 1 5 8 3
那么在程序执行到 ② 位置时,b 数组内的值为( )。
{{ select(1) }}
[10,8,3,5,1,3,2,2,5,4][3,5,1,3,2,2,5,4,10,8][10,8,5,5,4,3,3,2,2,1][1,2,2,3,3,4,5,5,8,10]