簡單的桶排序(個人練習演算法)
阿新 • • 發佈:2019-01-22
這個桶排序只是一個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; }
執行結果: