您的位置:首页 > 其它

1545 最简单排序

2017-03-20 17:46 176 查看
个人博客: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

#include <iostream>
using namespace std;
const int MAXN = 100000;
const int k = 1000; // range
int a[MAXN], c[MAXN], ranked[MAXN];

int main() {
int n;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a[i];
++c[a[i]];
}
for (int i = 1; i < k; ++i)
c[i] += c[i-1];
for (int i = n-1; i >= 0; --i)
ranked[--c[a[i]]] = a[i];//如果是i表达的是原数标号,a[i]就是排序后的正确序列
for (int i = 0; i < n; ++i)
cout << ranked[i] << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: