题目大意:
给定很多个居民的年龄。把他们按照从小到大排序输出
思路:
有内存限制不可以用快速排序,用计数排序的方法。
代码:
#include <iostream>
using namespace std;
#include <stdio.h>
#include <cstring>
int readint() {
char c = getchar();
while(!isdigit(c)) c = getchar();
int x = 0;
while(isdigit(c)) {
x = x * 10 + c -'0';
c = getchar();
}
return x;
}
int buf[10];
void writeint(int k) {
int p =0;
if(k == 0) p++;
else {
while(k) {
buf[p++] = k%10;
k = k/10;
}
}
for(int i = p - 1; i >= 0; i--) printf("%c",'0'+buf[i]);
}
int main() {
int n,c[101];
while(n = readint()) {
//cout << n <<endl;
memset(c,0,sizeof(c));
for(int i = 0 ; i < n; i++){
c[readint()]++;
}
bool first = true;
for(int i = 1 ; i <= 100; i++) {
for(int j = 0 ; j < c[i]; j++) {
if(!first) printf(" ");
first = false;
writeint(i);
}
}
printf("\n");
}
return 0;
}