#include <iostream>
using namespace std;
const int MAXN = 100000;
const int k = 1000; // range
int a[MAXN], c[MAXN], ranked[MAXN];
//时间复杂度O(n)
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];
for (int i = 0; i < n; ++i)
cout << ranked[i] << endl;
return 0;
}
计数排序
最新推荐文章于 2024-08-12 19:17:28 发布