测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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;
}

该算法是不稳定的排序算法。(    )

选项(单选)

上一题 下一题