在介绍了计数排序和基数排序两种线性时间复杂度的排序算法之后,我们来介绍第三种时间复杂度为线性,平均情况下的时间代价为O(n)的的排序算法--桶排序。
一、适用情况
这种排序假设输入数据服从均匀分布,而且需要已知待排序列的大概范围,是一种空间换时间的排序算法。
二、基本思想
对于一个待排序列,我们已知它的大概范围的时候,我们把这个范围分为n个相同大小的子区间,也就是我们说的桶,我们这里用数组的每一个元素代表一个桶。然后我们就可以把输入数据分道各个桶之中,因为我们前面假设了输入数据是均匀分布的情况,所以不会出现很多数落在同一个桶的情况。