桶排序
作者:互联网
桶排序
桶排序的思想是,若待排序的记录的关键字在一个明显有限范围内时,可设计有限个有序桶,每个桶只能装与之对应的值,顺序输出各桶的值,将得到有序的序列。简单来说,在我们可以确定需要排列的数组的范围时,可以生成该数值范围内有限个桶去对应数组中的数,然后我们将扫描的数值放入匹配的桶里的行为,可以看作是分类,在分类完成后,我们需要依次按照桶的顺序输出桶内存放的数值,这样就完成了桶排序。
代码+思路
#include<stdio.h>
int main()
{
int a[10]={0}; //以10个桶为例,必须将10个桶初始值设为0
int n; //要输入的数字个数
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++)
{
int key;
scanf("%d",&key);
a[key]++; //输入key,key会放在a[key]中,同时a[key]++记录了该桶存放的数据+1
}
for(i=0;i<10;i++) //这里表示将这10个桶里面的数全部输出,如果写n,则输出到n桶就停止了,如果有比n要大的数字即存放在了n桶后面就无法输出
for(j=0;j<a[i];j++) //小于a[i] ,一个桶里面可能有好几个一样的数字
printf("%d ",i);
return 0;
}
标签:10,int,有限,个桶,数值,排序 来源: https://www.cnblogs.com/wml201917205/p/15969332.html