```
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
const int N=1000010;
int n;
int q[N],w[N],s[N];//分别放待排序元素,辅助数组,元素的前缀和
void bucket_sort()
{
for(int i=0;i[HTML_REMOVED]=0;i–)w[–s[q[i]]]=q[i];//每个元素的前缀和减1就是元素按顺序所处位置放入辅助数组中
for(int i=0;i<n;i++)q[i]=w[i];//排好的元素放入原数组中;
}
int main()
{
scanf(“%d”,&n);
for(int i=0;i<n;i++) scanf(“%d”,&q[i]);
bucket_sort();
for(int i=0;i<n;i++) printf("%d ",q[i]);
return 0;
}
```