问help
  • 板块灌水区
  • 楼主FranklinAn
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/8/28 22:11
  • 上次更新2024/8/28 22:14:13
查看原帖
问help
1350262
FranklinAn楼主2024/8/28 22:11

下面代码用了什么排序方法???

#include <iostream>
using namespace std;
const int maxn = 100001;
const int maxv = 10001;
int n, mi, ent;
int a[maxn], b[maxn], c[maxn];
int main() {
	scanf("%d", &n);
	mi = 0x7fffffff;
	for (int i = 1; i <= n; i++) {
		scanf("%d", a + i);
		mi = mi < a[i] ? mi : a[i];
	}
	for (int i = n; i >= 1; i--) {
		c[a[i] - mi]++;
	}
	for (int i = 1; i < maxv; i++) {
		c[i] += c[i - 1];
	}
	for (int i = 0; i <= n; i++) {
		b[c[a[i] - mi]--] = a[i];
	}
	for (int i = 1; i <= n; i++)
		printf("%d ", b[i]);
	return 0;
}

在线等!

2024/8/28 22:11
加载中...