資料結構 基數排序原理

2021-10-07 03:43:19 字數 853 閱讀 6379

先看兩個例子

例1:

有一組數字包含20個整數,範圍1~20,數字亂序排列,如何恢復從小到大的排列順序?

(15,03,07,17,11,04,19,13,06,18,16,02,09,05,12,14,08,20,10,01)

且看我的方法。先把以上數字按個位數的大小從小到大排,注意,只看個位:

,20,01,11,02,12,03,13,04,14,05,15,06,16,07,17,08,18,09,19

再按十位排,只看十位:

01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20。

過程沒看夠?再看乙個例子:189,111,623,482,621,749,415,637,841,215

例2:

還是從小到大排序,哪一步都是,不再贅述。

第一步,排個位:

111,621,841,482,623,415,215,637,189,749

第二步,再對以上數字排十位:

111,415,215,621,623,637,749,841,189,482

第四步,再對百位排序:

111,189,215,415,482,621,623,637,749,841

至此,數就排好了。

可見,每次排序都是採取不同的位進行排序,用教科書的話來說就是不同的關鍵字,(第一次個位作為關鍵字,第二次十位作為關鍵字,第三次百位)所以教科書對基數排序的解釋為:「」基數排序是一種借助多關鍵字排序的思想對單邏輯關鍵字進行排序的方法。」

有空再寫一下用鏈式儲存思想實現基數排序吧,思路還是一樣的,只是實施不同。

資料結構 基數排序(桶排序)

基數排序和計數排序都屬於 非比較排序 有關計數排序可檢視 基數排序介紹 基數排序 radix sort 屬於 分配式排序 distribution sort 又稱 桶子法 bucket sort 或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些 桶 中,藉以達到排序的作...

資料結構基礎 15 基數排序

基數排序是一種借助 多關鍵字排序 的思想來實現 單關鍵字排序 的內部排序演算法。實現多關鍵字排序通常有兩種作法 最低位優先法 lsd 先對k 0 進行排序,並按 k 0 的不同值將記錄序列分成若干子串行之後,分別對 k 1 進行排序,k d 1 依次類推,直至最後對最次位關鍵字排序完成為止。最高位優...

資料結構與演算法 基數排序

基數排序是一種多關鍵字排序。以撲克牌排序為例,每張撲克牌有兩個 關鍵碼 花色和面值,花色的權重大於面值,如紅桃a小於黑桃2。通常有最高位優先msd most significant digit first 和最低位優先lsd least significant digit first 兩種實現方式。...