常見排序演算法 基數排序 Radix sort

2022-03-24 00:08:55 字數 927 閱讀 6800

檔案中任一記錄r[i]的關鍵字均由d個分量

構成。若這d個分量中每個分量都是乙個獨立的關鍵字,則檔案是多關鍵字的(如撲克牌有兩個關鍵字:點數和花色);否則檔案是單關鍵字的,

(0≤j

2、基數

設單關鍵字的每個分量的取值範圍均是:

c0≤kj≤crd-1(0≤j0=0,c9=9,d為最長整數的位數;

(2) 若關鍵字是小寫的英文本串,則rd=26,co='a',c25='z',d為字串的最大長度。

3、基數排序的基本思想

基數排序的基本思想是:從低位到高位依次對kj(j=d-1,d-2,…,0)進行箱排序。在d趟箱排序中,所需的箱子數就是基數rd,這就是"基數排序"名稱的由來。

4、基數排序的排序過程

要排序的記錄關鍵字取值範圍是0到99之間的整數(36,5,16,98,95,47, 32,36,48)。對這些關鍵字進行基數排序的過程【參見動畫演示】。

5、基數排序的型別說明和演算法描述

要保證基數排序是正確的,就必須保證除第一趟外各趟箱排序是穩定的。相應的型別說明及演算法描述【參見教材】。

6、演算法分析

若排序檔案不是以陣列r形式給出,而是以單鏈表形式給出(此時稱為鏈式的基數排序),則可通過修改出隊和人隊函式使表示箱子的鏈佇列無須分配結點空間,而使用原鍊錶的結點空間。人隊出隊操作亦無需移動記錄而僅需修改指標。雖然這樣一來節省了一定的時間和空間,但演算法要複雜得多,且時空複雜度就其數量級而言並未得到改觀。 有關鏈式的基數排序可【閱讀參考書目[12]】。

基數排序的時間是線性的(即o(n))。

基數排序所需的輔助儲存空間為o(n+rd)。

基數排序是穩定的。

ref:基數排序

ref:

排序演算法 基數排序

基數排序 思想 基數排序屬於 分配式排序 分為高位優先法msd和低位優先法lsd 低位優先法lsd 從最低位k0開始排序 對於排好的序列再用次低位k1排序 依次重複,直至對最高位kd 1排好序後,整個序列稱為有序的 這是乙個分 收 分 收 分 收的過程 特點 穩定 空間複雜度 o dn 時間複雜度 ...

排序演算法 基數排序

一 基數排序的思想 不直接比較數與數的大小。把待排序的整數按位分,分為個位,十位 從小到大依次將位數進行排序。實際上分為兩個過程 分配和收集。分配就是 從個位開始,按位數從小到大把資料排好,分別放進0 9這10個桶中 收集就是 依次將0 9桶中的資料放進陣列中 重複這兩個過程直到最高位 二 過程 比...

排序演算法 基數排序

基數排序稱桶排序。它按照記錄的各位值逐步進行排序。適用於整數型別的排序。基數排序不同於別的排序方法通過比較和交換來排序,它是通過按照桶來分配和收集的方法實現的。基本思想 假設待排序的記錄都是m位d進製 不足m位的高位補0 設定d個桶 0,1,d 1 首先將序列中的記錄按照最低位值的大小分配到各個桶中...