int countSort (int *s, int *d, int n); int s[MAXSIZE]; int d[MAXSIZE]; int main () {
int n;
printf(\请输入第一组数据的个数(输入0结束,最大1000000):\ while (scanf(\ {
if (n > 10000)
printf(\数据的个数过大\
rand_num(s, n); countSort(s, d, n);
printf(\原始数据:\\t\ output(s, n);
printf(\排序后的数据:\\t\ output(d, n);
printf(\请输入下一组数据的个数(输入0结束):\ }
return 0; }
int rand_num (int *s, int n) {
srand(time(NULL)); for (int i = 0; i < n; i++) s[i] = rand()00; return 0; }
int output (int *d, int n) {
for (int i = 0; i < n; i++) printf (\ putchar('\\n'); return 0; }
int countSort (int *s, int *d, int n) {
int i=0;
memset(count, 0, sizeof(count));
for (i = 0; i < n; i++) count[s[i]]++;
for (i = 1; i < MAX; i++) count[i] += count[i-1];
for (i = n-1; i >= 0; i--) {
d[count[s[i]] - 1] = s[i]; count[s[i]]--; }
return 0; }