桶排序是一种简单快速的排序,它在小数据范围内的排序速度可以堪比快排,它的缺点是需要产生额外的空间复杂度(或许这是常用的排序算法里空间复杂度最高的一个排序算法了),用空间来换取时间。
一、推荐阅读
这里推荐两篇文章,感觉蛮好的,特别是的第二篇文章
它的实现思路大致如下:

二、Java实现
/**
* @Auther: ARong
* @Date: 19-4-1 下午2:17
* @Description: 桶排序
**/
public class BucketSort {
public static void main(String[] args) {
int[] array = {1,5,5,2,1,3,0,6,9,3,4};
bSort(array);
}
public static void bSort(int[] array) {
//申请空间
int[] temp = new int[array.length + 1];
for (int i = 0; i < array.length; i++) {
//存储标识++
temp[array[i]]++;
}
//用于处理结果的list
List result = new ArrayList<Integer>();
for (int i = 0; i < temp.length; i++) {
if (temp[i] > 1) {
for (int j = 0; j < temp[i]; j++) {
result.add(i);
}
} else if (temp[i] > 0) {
result.add(i);
}
}
//打印
result.forEach(n->{
System.out.print(n);
});
}
}
三、桶排序的优缺点
-
优点
实现简单,在数据量小的情况下性能良好,是稳定的排序算法 -
缺点
严重依赖于额外的存储空间

本文介绍了桶排序的基本原理及其实现方式,并提供了一个使用Java编写的桶排序示例。桶排序是一种简单快速的排序算法,在小数据集上表现优异,但需要额外的空间开销。
2470

被折叠的 条评论
为什么被折叠?



