桶排序、基数排序、快速排序
三、桶排序
桶排序的原理是划分多个范围相同的区间,每个子区间自排序,最后合并,是计数排序的扩展版本。计数排序可以看成每个桶只存储相同元素,而桶排序每个桶存储一定范围的元素,通过映射函数,将待排序数组中的元素映射到各个对应的桶中,对每个桶中的元素进行排序,最后将非空桶中的元素逐个放入原序列中。
算法实现
根据待排序集合中最大元素和最小元素的差值范围和映射规则,确定申请的桶个数;
遍历待排序集合,将每一个元素移动到对应的桶中;
对每一个桶中元素进行排序,并移动到已排序集合中。
四、基数排序
原理是原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。
算法实现
任何一个阿拉伯数的个位数上的基数都是以09来表示的。所以可以把09视为10个桶。
根据序列的各个位数的数字来进行分类,将其分到指定的桶中。
分类后从各个桶中,将这些数按照从编号0到编号9的顺序依次将所有数取出来。
得到的序列就是个位数上呈递增趋势的序列。
接下来对十位数、百位数也按照这种方法进行排序,最后就能得到排序完成的序列。
来源整理自:vue3js.cn 面试官系列



