UVA 11462-Age sort
2016-06-16 20:42
295 查看
题意:
按年龄从小到大排序.
代码如下:
按年龄从小到大排序.
代码如下:
#include <iostream> #include <cstdio> #include <cstring> #include <fstream> #include <cmath> #include <ctime> #include <cstdlib> #include <algorithm> #include <set> #include <map> #include <list> #include <stack> #include <queue> #include <iterator> #include <vector> using namespace std; #define LL long long #define INF 0x3f3f3f3f #define MOD 1000000007 #define MAXN 10000010 #define MAXM 1000010 const int MAXN = 2000000+5; int a[MAXN]; // 方法一:快速排序 int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; } void qsort(int b[], int l, int r) { int i, j, x; i = l; j = r; x = b[i]; while(i != j) { while(b[j]>x&&j>i) j--; if(i < j) { b[i] = b[j]; i++; } while(b[i]<x&&j>i) i++; if(i < j) { b[j] = b[i]; j--; } } b[i] = x; qsort(b, l, j-1); qsort(b, i+1, r); } int main() { int n; while(scanf("%d", &n)==1&&n) { int i; for(i = 0; i < n; i++ ) scanf("%d", &a[i]); qsort(a, n, sizeof(a[0]), cmp); for(i = 0; i < n; i++ ) { if(i != 0) printf(" "); printf("%d", a[i]); } printf("\n"); } return 0; } //方法二:计数排序 int main() { int n; int x; int i, j; while(scanf("%d", &n)==1&&n) { int flag = 0; memset(a, 0, sizeof(a)); for(i = 1; i <= n; i++ ) { scanf("%d", &x); a[x]++; } for(i = 1; i <= 100; i++ ) //年龄:1-100岁 for(j = 1; j <= a[i]; j++ ) //每个年龄的人数(年龄从1岁开始) { if(flag) printf(" "); flag = 1; printf("%d", i); } printf("\n"); } return 0; }
相关文章推荐
- java中Json,Map,实体之间的转换
- Retrofit官网翻译
- shell脚本字符串截取的多种方法
- php测试并发连接数小工具
- 模拟http响应头
- iOS自动释放池_原理_如何工作
- Android自助餐之解析zip
- CVS使用手册
- day11:SqlAlchemy ORM
- 玩转linux主机--fastDFS单节点安装
- B+Tree/Hash_Map/STL Map三种数据结构性能
- iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)
- IsBackground的理解
- JS 倒计时实现代码(时、分,秒)
- 如何利用伪元素制造带三角的div
- 字符串的比较以及排序问题
- Android粒子雨效果之音量条显示
- 浅谈WebLogic和Tomcat
- Imagine dragons Dream中文歌词
- 短信工具类 SmsUtil