看动画学算法之:排序-基数排序
生活随笔
收集整理的這篇文章主要介紹了
看动画学算法之:排序-基数排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 簡介
- 基數排序的例子
- 基數排序的java代碼實現
- 基數排序的時間復雜度
簡介
之前的文章我們講了count排序,但是count排序有個限制,因為count數組是有限的,如果數組中的元素范圍過大,使用count排序是不現實的,其時間復雜度會膨脹。
而解決大范圍的元素排序的辦法就是基數排序。
基數排序的例子
什么是基數排序呢?
考慮一下,雖然我們不能直接將所有范圍內的數字都使用count數組進行排序,但是我們可以考慮按數字的位數來進行n輪count排序,每一輪都只對數字的某一位進行排序。
最終仍然可以得到結果,并且還可以擺脫count數組大小的限制,這就是基數排序。
假如我們現在數組的元素是:1221, 15, 20, 3681, 277, 5420, 71, 1522, 4793。
先看動畫,看下最直觀的基數排序的過程:
在上面的例子中,我們先對個位進行count排序,然后對十位進行count排序,然后是百位和千位。
最后生成最終的排序結果。
基數排序的java代碼實現
因為基數排序實際上是分別按位數的count排序。所以我
總結
以上是生活随笔為你收集整理的看动画学算法之:排序-基数排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文了解JDK12 13 14 GC调优
- 下一篇: 看动画学算法之:linkedList