zoukankan      html  css  js  c++  java
  • ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462

    可以使用整数排序法, 内存太小无法堆排序.

    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    int main(){
    	unsigned int age[101];
    	int n,temp;
    
    	while (scanf("%d", &n) == 1 && n){
    		memset(age, 0, sizeof(age));
    		for (int i = 0; i < n; i++){
    			scanf("%d", &temp);
    			age[temp]++;
    		}
    		bool first = 1;
    		for (int i = 1; i < 101; i++){
    			for (int j = 0; j < age[i];j++)
    			{
    				if (!first) printf("");
    				else first = false;
    				printf("%d", i);
    			}
    		}
    		printf("
    ");
    	}
    
    }
    优化输入输出也可以提高效率,  但是这个是最后考虑的优化要素.

    函数名前 的inline 相当于c的宏定义,  降低大量函数引用消耗的时间.

    使用cctype 中的 isdigit


    #include <cstdio>
    #include <cstring>
    #include <cctype>
    using namespace std;
    
    inline int readint(){
    	char c = getchar();
    	while (!isdigit(c)) c = getchar();
    	unsigned int num = 0;
    	while (isdigit(c)){
    		num = num * 10 + c - '0';
    		c = getchar();
    	}
    	return num;
    }
    
    inline void writeint(unsigned int i){
    	char buf[10];
    	int p = 0;
    	while (i){
    		buf[p++] = i % 10;
    		i /= 10;
    	}
    	for (int j = p - 1; j >= 0; j++) putchar('0' + buf[j]);
    }
    
    
    
    
    int main(){
    	int n;
    	int age[101];
    	while (n = readint()){
    		memset(age, 0, sizeof(age));
    		for (int i = 0; i < n; i++){
    			age[readint()]++;
    		}
    		bool first = true;
    		for (int i = 1; i < 101; i++){
    			for (int j = 0; j < age[i]; j++){
    				if (!first) putchar(' ');
    				else first = false;
    				writeint(i);
    			}
    		}
    		putchar('
    ');
    	}
    }


  • 相关阅读:
    HDU 5107 线段树扫描线
    多线程之多生产多消费者
    matlab @
    全概率公式
    正确理解HTML,XHTML页面的头部doctype定义
    每天过的非常充实。
    struts2对action中的方法进行输入校验(2)
    Ubuntu下Chromium源码的编译
    LCA 最近公共祖先 tarjan离线 总结 结合3个例题
    VS2010-win32下cocos2dx控制台打印的方法
  • 原文地址:https://www.cnblogs.com/Pomodori/p/4316625.html
Copyright © 2011-2022 走看看