uva11462 - Age Sort(年龄排序)

来源:互联网 发布:边锋游戏大厅mac 编辑:程序博客网 时间:2024/05/18 05:41

 这道题,思路到不难,就是计数排序。

但是在这里学到了新的技术,

刘汝佳有云:一般情况下,当输入输出的数据量很大时,应尽量用scanf()和printf()函数;如果时间效率还不高,应逐字符输入输出。示例如下代码,,,

代码如下:

#include <cstdio>#include <cstring>#include <cctype>inline 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];inline void writeint(int i){    int p = 0;    if(i==0) p++;    else while(i)    {        buf[p++] = i%10;        i/=10;    }    for(int j = p-1; j>=0; j--) putchar('0'+buf[j]);}int main (){    int n, x, c[101];    while(n = readint())    {        memset(c,0,sizeof(c));        for(int i = 0; i < n; i++) c[readint()]++;        for(int i = 0, f = 0; i <= 100; i++) if(c[i])        {            if(f++) printf(" ");            writeint(i);            c[i--]--;        }        putchar('\n');    }    return 0;}


原创粉丝点击