桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。
桶排序以下列程序进行:
- 设置一个定量的数组当作空桶子。
- 寻访序列,并且把项目一个一个放到对应的桶子去。
- 对每个不是空的桶子进行排序。
- 从不是空的桶子里把项目再放回原来的序列中。
python程序实现:
def Bucket_Sort(array, bucketsize):
minValue = min(array)
maxValue = max(array)
res = []
bucketcount = (maxValue - minValue + 1) // bucketsize
bucket_lists = [[] for i in range(bucketcount)]
for i in array:
bucket_index = (i - minValue) // bucketsize
bucket_lists[bucket_index].append(i)
# 桶内排序
for j in bucket_lists:
Quick_Sort_2(j, 0, len(j)-1)
for j in bucket_lists:
if len(j) != 0:
res.extend(j)
return res