基數排序學習

2021-09-25 11:18:11 字數 1151 閱讀 5743

乙個簡單有趣的演算法

基數排序是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。

由於整數也可以表達字串(比如名字或日期)和特定格式的浮點數,所以基數排序也不是只能使用於整數。

基數排序的方式可以採用 lsd(least significant digital)或 msd(most significant digital),lsd 的排序方式由鍵值的最右邊開始,而 msd 則相反,由鍵值的最左邊開始。

簡單按數字排序來說:我們可以先按個位排好序,然後百位排序,千位排序…等等,直到最高位

最後得到的就是排好序的序列

一張足以解釋

//獲得最大數字

return maxnum;

}int

getsorttimes

(int maxnum)

//需要排序的次數

return times;

}void

bucketsort

(int

*a,int n,

int t)

//把桶中的資料,返回給原來的陣列中

int k=0;

for(

int i=

0;i<

10;i++)}

}void

radixsort

(int

*a,int n)

}int

main()

;int n=6;

radixsort

(a,n)

;for

(int i=

0;i)return0;

}結果:

參考部落格:

基數排序學習

快排雖稱快速排序,但是其嚴格來講 只能稱為是基於比較的排序演算法中相對很優秀的演算法 排序演算法的時間效率下界是o nlogn 是僅針對基於比較的排序演算法的 而今天講的o n 的基數排序演算法 是一種基於內容而不基於比較的排序演算法 下面進入正題,先來嘗試了解基數排序演算法 給出幾個數 239,1...

基數排序學習

可以拿下力扣164.最大間距。基數排序 英語 radix sort 是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。基數排序是穩定性的排序。步驟 基數排序的時間複雜度是o k n 其中n是排序元素個數,k是數字位數。include include defi...

排序 基數排序

基數排序 radix sort 是屬於 分配式排序 distribution sort 基數排序法又稱 桶子法 bucket sort 或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些 桶 中,藉以達到排序的作用。排序思想 首先按照資料的最低位 個位 將資料分配到0 9...