1545 最简单排序
个人博客:double.win
题目描述 Description
实现从小到大排序。
输入描述 Input Description
第一行一个整数n
第二行:n个整数,每个用空隔隔开。
输出描述 Output Description
从小到大依次数据,每行一个,共n行。
样例输入 Sample Input
6
1
2
5
4
3
2
样例输出 Sample Output
1
2
2
3
4
5
1 #include <iostream> 2 using namespace std; 3 const int MAXN = 100000; 4 const int k = 1000; // range 5 int a[MAXN], c[MAXN], ranked[MAXN]; 6 7 int main() { 8 int n; 9 cin >> n; 10 for (int i = 0; i < n; ++i) { 11 cin >> a[i]; 12 ++c[a[i]]; 13 } 14 for (int i = 1; i < k; ++i) 15 c[i] += c[i-1]; 16 for (int i = n-1; i >= 0; --i) 17 ranked[--c[a[i]]] = a[i];//如果是i表达的是原数标号,a[i]就是排序后的正确序列 18 for (int i = 0; i < n; ++i) 19 cout << ranked[i] << endl; 20 return 0; 21 }
作者:自为风月马前卒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。