基数排序,顾名思义就是找一个基数,然后搞起,一般情况我们都会以10为基数,基数排序也是桶排序的一种,接下来我们通过例子来详细讲解一下
有数组[10 1 18 30 23 12 7 5 18 233 144]
我们建立一个下标从0到9的桶,然后对数组进行遍历
首先我们遍历个位数,把个位数一样的数据放到对应下标的桶中,比如上面的10的个位数是0,所以放到第一个桶中,1的个位数是1,所以放到下标为1,也就是第二个桶中……18的个位数为8,放到第九个桶中……
这样一遍之后的结果结果是
通过上图我们清晰的看到,下标为 0,1,2,3,4,5,7,8 的都有对应若干个数
接下来进行第二遍排序,这个时候使用十分位进行排序,因为个位数的没有十分位,自然排在最前面,而且个位数在第一轮排序的时候已经跟下标进行对应,也就是说,十分位已经排序好了,只需要放到最前面就好了,经过第二轮排序之后结果如下
[1 5 7 10 12 18 18 23 30 233 144]
嗯,我们看到个位数和十位数已经排序完成,接下来我们进行第三轮排序,采用百分位,排序结果为下
[1 5 7 10 12 18 18 23 30 144 233]
至此排序完成,符合预期
实战部分: