1545 最简单排序

个人博客:double.win

1545 最简单排序

 

 时间限制: 1 s
 空间限制: 1000 KB
 题目等级 : 青铜 Bronze
 
 
 
题目描述 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 }

 

posted @ 2017-03-20 17:46  自为风月马前卒  阅读(218)  评论(0编辑  收藏  举报

Contact with me