**算法基础,排序之桶装排序(简化版)。 **
**
基本思路
用桶标记每个数出现的次数,再将它们以次输出。
特性:适用于排序数值较小的数组排序。
代码实现如下
#include<stdio.h>
int main ()
{
int book[1001];
int i,j,t,n;
for(i=0;i<1000;i++)
book[i]=0;
scanf("%d",&n); //输入一个数n表示接下来有n个数处理
for(i=0;i<n;i++) //循环读入n个数,并进行桶排序
{
scanf("%d",&t); //把每个变量读入到变量t中
book[t]++; //进行计数,对编号为t的桶标记
}
for(i=1000;i>=0;i--) //依次判断1000到0的桶
for(j=1;j<=book[i];j++) //出现几次就打印几次
printf("%d",i);
getchar(); getchar();
return 0;
输入数据验证
10
56 87 1000 0 19 890 999 10 748 8
运行结果
1000 999 890 748 87 56 19 10 8 0
备注
如果要实现从小到大排序
只需将
for(i=1000;i>=0;i--)
改为
for(i=0;i<=1000;i++)
就可以了。