1. 程式人生 > >桶排序——C語言

桶排序——C語言

桶排序是一種常見的排序方式。其主要是先確定一定大小的桶,再將陣列數值存入桶的對應下標中,最後對非空桶進行排查,將桶的數值賦給數值。

程式碼實現:

/**桶排序**/ void bucket(int *data)///隨機產生data陣列的值 {     int t;     int j=0;     t=findmax(data)+1;///使t為陣列最大數值     int buketdata[t];///申請一個大小為陣列數值最大數的桶     for(int i=0;i<t;i++)///對桶進行初始化,使之都為0         buketdata[i]=0;     for(int i=0;i<MAX;i++)///將陣列中的數放置進對應的桶中         buketdata[data[i]]++;     for(int i=0;i<t;i++)     {         while(buketdata[i]!=0)///對非空桶進行排序         {             data[j]=i;///將非空的桶的值傳給data陣列             j++;             buketdata[i]--;         }     }     for(int i=0;i<MAX;i++)         printf("%d\t",data[i]); }

執行結果:

時間複雜度:O(n)