桶排序的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;
}

(當然這只是爲了說明以上內容的一個簡單的示例代碼,萌新發表一下愚見,大神不喜勿噴)

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