您的位置:首页 > 其它

uva11462

2016-01-23 17:57 267 查看
题目大意:

给定很多个居民的年龄。把他们按照从小到大排序输出

思路:

有内存限制不可以用快速排序,用计数排序的方法。

代码:

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: