基數排序

基數排序 （ Radix sort ） 是一種非比較型整數排序算法 ， 其原理是將整數按位數切割成不同的數字 ， 然後按每個位數分別比較 。 由於整數也可以表達字符串 （ 比如名字或日期 ） 和特定格式的浮點數 ， 所以基數排序也不是隻能使用於整數 。 基數排序的發明可以追溯到1887年赫爾曼 · 何樂禮在列表機 （ Tabulation Machine ） 上的貢獻 。 它是這樣實現的 ： 將所有待比較數值 （ 正整數 ） 統一爲同樣的數位長度 ， 數位較短的數前面補零 。 然後 ， 從最低位開始 ， 依次進行一次排序 。 這樣從最低位排序一直到最高位排序完成以後 ， 數列就變成一個有序序列 。 基數排序的方式可以採用LSD （ Least significant digital ） 或MSD （ Most significant digital ） ， LSD的排序方式由鍵值的最右邊開始 ， 而MSD則相反 ， 由鍵值的最左邊開始 。