题意:
给出n个数,将这n个数从小到大排序。
输入:
4
2 2 1 5 [不大于10]
输出:
1 2 2 5
桶排序思想:
拿这个例题来讲:
拿出11个桶,依次排开,对桶编号0~10
把每个数丢进相应的桶里面
依次输出即可。
简单来说就是标记++。
优缺点:
优点:时间复杂度低:O(m+1+n)
缺点:需要m+1个空间
代码:
#include<stdio.h>
#include<string.h>
int a[11];
int main()
{
memset(a,0,sizeof(a));
int n,x;scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
a[x]++;
}
for(int i=0;i<=10;i++)
for(int j=1;j<=a[i];j++)
printf("%d ",i);
return 0;
}