#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int n;
int q[N],s[N],w[N];
void bucket_sort()
{
for(int i=0;i<n;i++) s[q[i]]++;
for(int i=1;i<N;i++) s[i]+=s[i-1];
for(int i=n-1;i>=0;i--) w[--s[q[i]]]=q[i];
for(int i=0;i<n;i++) q[i]=w[i];
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>q[i];
bucket_sort();
for(int i=0;i<n;i++)
cout<<q[i]<<' ';
}
最坏、平均、最好时间复杂度均为O(n+m)m是桶的数量
稳定性:稳定