桶排序、基数排序、快速排序

三、桶排序

桶排序的原理是划分多个范围相同的区间,每个子区间自排序,最后合并,是计数排序的扩展版本。计数排序可以看成每个桶只存储相同元素,而桶排序每个桶存储一定范围的元素,通过映射函数,将待排序数组中的元素映射到各个对应的桶中,对每个桶中的元素进行排序,最后将非空桶中的元素逐个放入原序列中。

算法实现

根据待排序集合中最大元素和最小元素的差值范围和映射规则,确定申请的桶个数;

遍历待排序集合,将每一个元素移动到对应的桶中;

对每一个桶中元素进行排序,并移动到已排序集合中。

四、基数排序

原理是原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。

算法实现

任何一个阿拉伯数的个位数上的基数都是以09来表示的。所以可以把09视为10个桶。

根据序列的各个位数的数字来进行分类,将其分到指定的桶中。

分类后从各个桶中,将这些数按照从编号0到编号9的顺序依次将所有数取出来。

得到的序列就是个位数上呈递增趋势的序列。

接下来对十位数、百位数也按照这种方法进行排序,最后就能得到排序完成的序列。

来源整理自:vue3js.cn 面试官系列