首页 > 代码库 > 常见排序算法导读(11)[桶排序]

常见排序算法导读(11)[桶排序]

上一节讲了基数排序(Radix Sort),这一节介绍桶排序(Bucket Sort or Bin Sort)。和基数排序一样,桶排序也是一种分布式排序。

桶排序(Bucket Sort)的基本思想

  1. 将待排对象序列按照一定hash算法分发到N个桶中
  2. 对每一个桶的待排对象进行排序
  3. 从头到尾遍历N个桶,收集所有非空的桶里的有序对象(子序列)组成一个统一的有序对象序列

在每一个桶中,如果采用链式存储的话,1.和2.可以合并在一起操作,也就是在分发的过程中保证每一个桶的对象桶内有序。

例如: 设有5个桶, 待排对象序列为 29, 25, 3, 49, 9, 37, 21, 43

1. 分发(scatter)

技术分享

2. 收集(gather)

技术分享

 

参考资料

1. Algorithm Visualizations

常见排序算法导读(11)[桶排序]