1. 程式人生 > >簡單的桶排序(個人練習演算法)

簡單的桶排序(個人練習演算法)

這個桶排序只是一個10以內的整數的排序,屬於一個比較簡單的。只是作為個人學習演算法的練習,在此分享出來,請指教!微笑

C程式碼:

#include <stdio.h>

/*
*描述:桶排序
*作者:溫建平
*時間:2017-12-16 13:17
*
*/
int main(){
	int a[11],i,j,t;
	//初始化陣列賦值為0
	for(i=0;i<=10;i++){
		a[i]=0;
	}
	for(j=0;j<=10;j++){
		printf("a[%d]=%d  ",j,a[j]);
	}
	
	printf("\n請輸入5個10以內整數,按回車輸入下一個:\n");
	/*
	*把每一個數讀取到變數t中,然後進行計數
	*/
	for(i=0;i<5;i++){
		scanf("%d",&t);
		a[t]++;
	}
	printf("陣列中每個位置出現次數詳情:\n");
	for(t=0;t<10;t++){
		printf("%d  ",a[t]);
	}
	
	printf("\n最後桶排序的結果(從小到大):");
	for(i=0;i<=10;i++){
		for(j=1;j<=a[i];j++){
			printf("%d  ",i);
		}
	}
	printf("\n最後桶排序的結果(從大到小):");
	for(i=10;i>=0;i--){
		for(j=1;j<=a[i];j++){
			printf("%d  ",i);
		}
	}
	return 0;
}


執行結果: