一、算法基本思路
这是一种排序算法,桶排序将无序序列A1,A2......An的每个项放入对应的“桶”中。比如,数字1,我们就把1装入1号桶中,该桶装的个数加1,以此类推,如果用N数组来表示这一个个桶的话, 则N[ i ] 的值为该数列中i的个数。
那怎样做到排序呢?
接下来就很简单了,从小到大(反之亦可)询问每个桶的值,若值不为0,设值为w,输出w次该桶对应的数即可。
二、代码
#include<bits/stdc++.h>
using namespace std;
int num[1000000+5];
int main(){
int n,x,maxx=-1;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
maxx=max(maxx,x);
num[x]++;
}
for(int i=0;i<=maxx;i++){
if(num[i]>0) {
for(int j=1;j<=num[i];j++){
cout<<i<<" ";
}
}
}
return 0;
}
Ok,完事!