2023 / 10 / 31
将读入的 $N$ 个数从小到大排序后输出。
第一行为一个正整数 $N$。
第二行包含 $N$ 个空格隔开的正整数 $a_i$,为你需要进行排序的数。
将给定的 $N$ 个数从小到大输出,数之间空格隔开,行末换行且无空格。
5
4 2 4 5 1
1 2 4 4 5
对于 $20%$ 的数据,有 $1 \leq N \leq 10^3$;
对于 $100%$ 的数据,有 $1 \leq N \leq 10^5$,$1 \le a_i \le 10^9$。
#include <bits/stdc++.h> using namespace std; int n, a[100020]; void qsort(int n[], int l, int r) { int i = l, j = r, flag = a[(l + r) / 2]; do { while (n[i] < flag) i++; while (n[j] > flag) j--; if (i <= j) swap(n[i++], n[j--]); } while (i <= j); if (i < j) qsort(n, l, j); if (i < r) qsort(n, i, r); } int main() { cin >> n; for (int i = 0; i < n; i++) scanf("%d", &a[i]); qsort(a, 0, n - 1); for (int i = 0; i < n; i++) cout << a[i] << ' '; return 0; }
#include <bits/stdc++.h> using namespace std; int n, a[100010]; /*void qsort(int n[], int l, int r) { int i = l, j = r, flag = a[(l + r) / 2]; do { while (n[i] < flag) i++; while (n[j] > flag) j--; if (i <= j) swap(n[i++], n[j--]); } while (i <= j); if (i < j) qsort(n, l, j); if (i < r) qsort(n, i, r); }*/ int main() { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; //qsort(a, 0, n - 1); sort(a, a + n); for (int i = 0; i < n; i++) cout << a[i] << ' '; return 0; }