A24126. #include <iostream> using namespace std; const int MAXN = 1005; int a[MAXN]; void mystery(int l, int r) { if (l >= r) return; int i = l, j = r, pivot = a[(l + r) / 2]; while (i <= j) { while (a[i] < …
判断题
较易
知识点
题目描述
#include <iostream>
using namespace std;
const int MAXN = 1005;
int a[MAXN];
void mystery(int l, int r) {
if (l >= r) return;
int i = l, j = r, pivot = a[(l + r) / 2];
while (i <= j) {
while (a[i] < pivot) i++;
while (a[j] > pivot) j--;
if (i <= j) {
swap(a[i], a[j]);
i++;
j--;
}
}
mystery(l, j);
mystery(i, r);
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
mystery(0, n - 1);
for (int i = 0; i < n; i++) cout << a[i] << " ";
return 0;
}该算法是不稳定的排序算法。( )
选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题