您好,登錄后才能下訂單哦!
這篇文章主要介紹java中基數排序是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
基數排序 (Radix Sort) 是一種非比較型整數排序算法,其原理是將整數按位數切割成不同的數字,然后按每個位數分別比較。基數排序的發明可以追溯到 1887 年赫爾曼·何樂禮在打孔卡片制表機 (Tabulation Machine)上的貢獻。
基數排序法會使用到桶 (Bucket),顧名思義,通過將要比較的位(個位、十位、百位…),將要排序的元素分配至 0~9 個桶中,借以達到排序的作用,在某些時候,基數排序法的效率高于其它的比較性排序法。
將所有待比較數值(正整數)統一為同樣的數位長度,數位較短的數前面補零
從最低位開始,依次進行一次排序
從最低位排序一直到最高位排序完成以后, 數列就變成一個有序序列
動畫演示GIF加載有點慢,請稍等片刻^_^
基數排序的方式可以采用 LSD (Least sgnificant digital) 或 MSD (Most sgnificant digital)
在本例中使用的是 LSD
首先創建編號 0 , 1 ,2 ,3 ,4 ,5 , 6 ,7 ,8 ,9 這 10 個桶
遍歷整個數列,查看數字的個位數,按照先后順序存放在對應編號的桶中
比如 321 個位數 為 1 ,存放在編號 1 桶中
數字 1 個位數 為 1 ,存放在編號 1 桶中,同時存放在 321 上面
遍歷完整個數列的個位數,將數字存放在桶中后,按照編號順序取出數字,先放入桶中的數字先取出
然后依次遍歷整個數列的十位數,按照上述個位數的操作整理數列
依次遍歷整個數列的百位數,按照上述個位數的操作整理數列
這樣就完成了 基數排序
為了更好的讓讀者用自己熟悉的編程語言來理解動畫,筆者將貼出多種編程語言的參考代碼,代碼全部來源于網上。
以上是“java中基數排序是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。