1、箱排序的基本思想
箱排序也稱桶排序(Bucket Sort),其基本思想是:設定若干個箱子,依次掃描待排序的記錄R[0],R[1],…,R[n-1],把關鍵字等於k的記錄全都裝入到第k個箱子裡(分配),然後按序號依次將各非空的箱子首尾連線起來(收集)。
【例】要將一副混洗的52張撲克牌按點數A<2<…<J<Q<K排序,需設定13個"箱子",排序時依次將每張牌按點數放入相應的箱子裡,然後依次將這些箱子首尾相接,就得到了按點數遞增序排列的一副牌。
2、箱排序中,箱子的個數取決於關鍵字的取值範圍。
若R[0..n-1]中關鍵字的取值範圍是0到m-1的整數,則必須設定m個箱子。因此箱排序要求關鍵字的類型是有限類型,否則可能要無限個箱子。
3、箱子的類型應設計成鏈表為宜
一般情況下每個箱子中存放多少個關鍵字相同的記錄是無法預料的,故箱子的類型應設計成鍊表為宜。
4、為保證排序是穩定的,分配過程中裝箱及收集過程中的連線必須按先進先出原則進行。
(1) 實現方法一
每個箱子設為一個鏈佇列。當一記錄裝入某箱子時,應做人隊操作將其插入該箱子尾部;而收集過程則是對箱子做出隊操作,依次將出隊的記錄放到輸出序列中。
(2) 實現方法二
若輸入的待排序記錄是以鍊表形式給出時,出隊操作可簡化為是將整個箱子鍊表連結到輸出鍊表的尾部。這只需要修改輸出鍊表的尾結點中的指針域,令其指向箱子鍊表的頭,然後修改輸出鍊表的尾指針,令其指向箱子鍊表的尾即可。
5、算法簡析
分配過程的時間是O(n);收集過程的時間為O(m) (採用鍊表來存儲輸入的待排序記錄)或O(m+n)。因此,箱排序的時間為O(m+n)。若箱子個數m的數量級為O(n),則箱排序的時間是線性的,即O(n)。
注意:
箱排序實用價值不大,僅適用於作為基數排序(下節介紹)的一個中間步驟。
相關詞條
-
排序
排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。分內部排序和外部排序,若整個排序過程不需要訪問外存便能完成,...
概念 冒泡排序 選擇排序 插入排序 希爾排序 -
桶排序
桶排序 (Bucket sort)或所謂的箱排序,是一個排序算法,工作的原理是將數組分到有限數量的桶子裡。每個桶子再個別排序(有可能再使用別的排序算法或...
定義 算法 代價 源碼 套用 -
單片機實驗箱
DICE-5210K多功能單片機實驗開發系統 DICE-5210K多功能單片機實驗開發系統是啟東計算機總廠研製開發的。 二、系統組成:
-
BoxWeb網路資訊箱V3.1
BoxWeb網路資訊箱V3.1所屬一款國產軟體,套用於Win9x/NT/2000/XP/2003平台。
軟體簡介 軟體功能 -
楊紅櫻童話:那個騎輪箱來的蜜兒
《楊紅櫻童話:那個騎輪箱來的蜜兒》講述了:五年級女生孟小喬,在神秘的仙女湖畔遇見了願意到她家去做保姆的蜜兒。這個神秘的蜜兒,會許多神奇的法術,使孟小喬家...
基本介紹 圖書目錄 序言 -
高維成
, 2008, 11(3) (排序1,SCI)(2) Optimal..., (317) (排序2,SCI)(3) Application... and Acoustics, 2009,131(3) (排序2,SCI)(4...
主要經歷 學術課題 獲得專利 主要成就 -
阿羅悖論
進一步假設群體中的每一個成員都能夠按自己的偏好對所需要的各種選擇進行排序,再對所有排序匯聚就是群體的排序了。意思是“將每個個體表達的先後次序綜...生產要素,以埃奇沃思箱形圖來直觀地說明問題。雖然,埃奇沃思箱形圖僅能清晰...
定理的孕育和誕生 定理的內涵 定理的推理 定理的套用範疇 -
高職高專計算機系列·數據結構
和廣義表、串、樹與二叉樹、圖、查找和排序等。《高職高專計算機系列...結構 2.6.3 自動裝箱/拆箱 2.6.4 枚舉類型... 8.5.3 Prim算法 8.6 最短路徑問題 8.7 拓撲排序...
圖書信息 內容簡介 目錄 -
算法設計與分析習題解答(第3版)
1章算法引論1習題11實參交換1習題12方法頭簽名1習題13數組排序...(1)空間合併算法22習題213n段合併排序算法28習題214自然合併排序算法28習題215最大值和最小值問題的最優算法30習題216...
編輯推薦 內容簡介 作者簡介 圖書目錄