排序演算法 基數排序

2021-09-28 19:59:27 字數 742 閱讀 7444

一、基數排序

1、介紹。

基數排序(radix sort)屬於「分配式排序」(distribution sort),又稱「桶子法」(bucket sort)或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些「桶」中,藉以達到排序的作用,基數排序法是屬於穩定性的排序,其時間複雜度為o (nlog(r)m),其中r為所採取的基數,而m為堆數,在某些時候,基數排序法的效率高於其它的穩定性排序法

基數排序是穩定排序,需要額外記憶體,空間複雜度o(n*k)。時間複雜度,最佳情況:o(n*k)  最差情況:o(n*k)  平均情況:o(n*k)。

2、步驟。

(1)第一趟桶排序將數字的個位數分配到桶子裡面去,然後**起來,此時陣列元素的所有個位數都已經排好順序了

(2)第二趟桶排序將數字的十位數分別分配到桶子裡面去,然後**起來,此時陣列元素的所有個位數和十位數都已經排好順序了(如果沒有十位數、則補0)

(3)第三趟桶排序將數字的百位數分別分配到桶子裡面去,然後**起來,此時陣列元素的所有個位數和十位數和百位數都已經排好順序了(如果沒有百位數、則補0)

(4)直至全部數(個、十、百、千位...)排好順序,那麼這個陣列就是有序的了。

3、**。

static class bucket { //跟main方法在同個類裡面

public int value = -1;

public bucket next;//下一次bucke

排序演算法 基數排序

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

排序演算法 基數排序

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

排序演算法 基數排序

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