原理:
桶排序,就是把需要排序的数字当作下标,分别储存到一个一个桶中,首先清空数组,如果有这个数,它对应的值增加一次,没有的话,该下标对应的值就为0,这种方法复杂度比较低,而且可以起到去重的作用,不过缺点是不能应用于太大的数组
比如
如果输入数据的范围是1~6,就可以准备6个桶,
比如输入2,3,2,6,1,4
那么
s[1]=1;
s[2]=2;
s[3]=1;
s[4]=1;
s[5]=0;
s[6]=1;
输出的时候,直接输出下标就可以了
代码实现
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int s[100],i,x;
memset(s,0,sizeof(s));
for(i=1;i<=10;i++)
{
cin>>x;
s[x]++;
}
for(i=0;i<100;i++)
{
if(s[i]!=0)
cout<<i<<' ';
}
return 0;
}
测试结果