基數排序
基數排序(Radix sort)原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。屬於一種分配模式排序方式. 基數排序法依比較的方向可分為最有效鍵優先(Most Significant Digit First, MSD)和最無效鍵優先 (Least Significant Digit First, LSD)兩種,MSD法是從最左邊的位數開始比較,而LSD則是從最右邊的位數開始比較。C# 語法
- 將未排序的部分最左邊元素儲存到暫存變數。
- 由後往前和已排序部分元素比較,若大則將該元素往右邊位移。
- 重複2的動作直到遇到不大於自己的元素,將暫存變數寫入在該元素之後;若都沒有則寫入在最前面。
排序演算法只是個統稱,最常見的分為:
相同資料當中,經過排序後會產生先後順序的步驟,因此分為不穩定與穩定的呈面。
- 穩定性: 相同值的資料,排序後順序和排序前一樣。
- 不穩定: 相同值的資料,排序後順序不一定和排序前一樣。
演算法
|
穩定性
|
類型
|
資料結構
|
選擇排序
|
不穩定
|
選擇
|
陣列
|
穩定
|
連結串列
|
||
插入排序
|
穩定
|
插入
|
陣列、連結串列
|
氣泡排序
|
穩定
|
交換
|
陣列
|
搖晃排序
|
穩定
|
交換
|
陣列
|
快速排序
|
不穩定
|
交換
|
陣列
|
合併排序
|
穩定
|
合併
|
陣列、連結串列
|
基數排序
|
穩定
|
分配
|
陣列、連結串列
|