排序算法_桶排序(箱排序)
生活随笔
收集整理的這篇文章主要介紹了
排序算法_桶排序(箱排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、算法描述
假設有一組長度為N的待排關鍵字序列K[1....n]。
二、圖示
假如待排序列K= {49、38 、35、 97 、 76、 73 、 27、 49 }。
這些數據全部在1—100之間。因此我們定制10個桶,然后確定映射函數f(k)=k/10。
則第一個關鍵字49將定位到第4個桶中(49/10=4)。
依次將所有關鍵字全部堆入桶中,并在每個非空的桶中進行快速排序后得到如下圖所示:
對上圖只要順序輸出每個B[i]中的數據就可以得到有序序列了。
三、性能描述
??數據結構 :數組
最差時間復雜度 :O(n2)
平均時間復雜度 :O(n+k)
最差空間復雜度 :O(n*k)
四、總結
五、偽代碼
void BucketSon(R){ //對R[0..n-1]做桶排序,其中0≤R[i].key<1(0≤i<n)for(i=0,i<n;i++) //分配過程.將R[i]插入到桶B[「n(R[i].key)」]中; //可插入表頭上for(i=0;i<n;i++) //排序過程 當B[i]非空時用插人排序將B[i]中的記錄排序;for(i=0,i<n;i++) //收集過程 若B[i]非空,則將B[i]中的記錄依次輸出到R中;}?
?
?
?參考文檔:
1.?圖解"數據結構-內部排序算法"分配排序:箱排序、基數排序
? http://www.myexception.cn/other/918080.html
2.?http://zh.wikipedia.org/wiki/桶排序
?
轉載于:https://www.cnblogs.com/butyoux/archive/2013/01/18/2866166.html
總結
以上是生活随笔為你收集整理的排序算法_桶排序(箱排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美国M60A1坦克火控系统
- 下一篇: oracle 去除重复的信息