基数排序(Radix sort)是一种非比较型排序的算法。其原理是将整数按位切割成不同的数字,然后逐位进行比较。其具体实现如下:
(1)将所有待排序的整数统一用等长数字表示,即以最长的整数为基准,较短的数字前面补零。
(2)从最低位开始,依次进行一次排序(桶排序)。
这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。每次排序都是在上次排序的基础上进行排序的,也就是说此次排序的位数上他们相对时,就不移动元素。因此,基数排序法是属于稳定性的排序。
基数排序法会使用到桶 (Bucket),通过将要比较的位(个位、十位、百位…)上的元素分配至 0~9 个桶中,借以达到排序的作用。
基数排序动画演示:点击打开链接
基数排序的时间复杂度是,其中
是排序元素个数,
是数字位数。基数排序的时间复杂度不一定优于
。