神奇的O2
  • 板块灌水区
  • 楼主tuomasi_weide
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/12/4 21:37
  • 上次更新2023/11/5 06:41:41
查看原帖
神奇的O2
410098
tuomasi_weide楼主2020/12/4 21:37
#include <iostream>
#include <cstdio>
using namespace std;
int n, a[100000];

long long read() {
	long long ans = 0;
	char last = ' ', ch = getchar();
	while (ch < '0' || ch > '9')
		last = ch, ch = getchar();
	while (ch >= '0' && ch <= '9')
		ans = ans * 10 + ch - '0', ch = getchar();
	if (last == '-')
		ans = -ans;
	return ans;
}

void quickly_sort(int a[], int l, int r) {
	if (l < r) {
		int i = l, j = r, x = a[l];
		while (i < j) {
			while (i < j && a[j] >= x)
				j--;
			if (i < j)
				a[i++] = a[j];
			while (i < j && a[i] < x)
				i++;
			if (i < j)
				a[j--] = a[i];
		}
		a[i] = x;
		quickly_sort(a, l, i - 1);
		quickly_sort(a, i + 1, r);
	}
}

int main() {
	n = read();
	for (int i = 0; i < n; i++)
		a[i] = read();
	quickly_sort(a, 0, n);
	for (int i = 1; i <= n; i++) {
		if (i == n) {
			printf("%d\n", a[i]);
			return 0;
		}
		printf("%d ", a[i]);
	}
	return 0;
}

不开O2,40,开了AC!

2020/12/4 21:37
加载中...