桶排序的C语言的代码实现

什么是桶排序
桶排序,一种老生畅谈的排序方法,其思路就是将一组数据放进有限数量的“桶子”里,然后在对每个桶子进行分别排序,从而达到将这组数据从无序变为有序的过程
桶排序的局限
个人认为,桶排序其最大的缺陷就在于要对其有一个上限的限制(个人的一点愚见,或许有大神可以解决这个问题吧。。。)
代码思路
可以吧这些进行排序的“桶”看成是数组,而刚刚所说的上限,就可以看作是数组的元素数量,例如对一组数据进行排序,这组数据的大小范围控制在0-100之间,那就可以声明一个有101个元素的数组int a[101],然后给每个数组元素赋值为0,然后开始接收数据,例如现在接收到一个数据为2,那就让a[2]++,以此类推,有几个数据就进行几次循环,最后再进行数据的输出,此时可以按照数组下标的顺序进行输出,这就达到了一个排序的作用,例如,现在有有一组数据:0,5,3,5,2,4,2那现在输出的结果就是0,2,2,3,4,5,5
C语言代码

#include<stdio.h>
int main()
{
	printf("please enter:\n");
	int a[100],t,max=sizeof(a)/sizeof(int);
	for(int i=0;i<max;i++)
		a[i]=0;
	for(int j=0;j<5;j++)
	{
		scanf("%d",&t);
		a[t]++;
	}
	for(int k=0;k<max;k++)
		for(int y=0;y<a[k];y++)
			printf("%d ",k);
	return 0;
}

(当然这只是为了说明以上内容的一个简单的示例代码,萌新发表一下愚见,大神不喜勿喷)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章