UVA - 11462 Age Sort

题目大意:给很多个范围在1到100之内的数字,数量最多有2*10^6个,排序输出。

题目思路:数组很大,超内存。不能快排。所以采用计数排序


#include <cstdio>

int main() {
	int n;
	while (scanf("%d", &n), n) {
		int A[105] = {0};
		for (int i = 0; i < n; i++) {
			int x;
			scanf("%d", &x);
			A[x]++;
		}

		int first = 0;
		for (int i = 1; i <= 100; i++)
			for (int j = 0; j < A[i]; j++) {
				if (first++)
					printf(" ");
				printf("%d", i);
		}
		printf("\n");
	}
	return 0;
}



你可能感兴趣的:(UVA - 11462 Age Sort)