1、初识桶排序
每一个桶(bucket)代表一个区间范围,里面可以承载一个或多个元素,假设有一个非整数数列如下:
4.5,0.84,3.25,2.18,0.5
桶排序的工作原理:
- 第1步,创建桶,并确定每一个桶的区间范围
具体需要建立多少个桶,如何确定桶的区间范围,有很多种不同的方式。
这里创建桶数量等于原始数列的元素数量,除最后一个桶只包含数列最大值外, 前面各个桶的区间按照比例来确定
区间跨度 = (最大值-最小值)/ (桶的数量 - 1) - 第2步,遍历原始数列,把元素对号入座放入各个桶中
- 第3步,对每个桶内部的元素分别进行排序(显然,只有第1个桶需要排序)
- 第4步,遍历所有的桶,输出所有元素
输出:0.5,0.84,2.18,3.25,4.5…到此为止,排序结束
2、桶排序代码实现
Code: Java实现
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
/**
* @ClassName BucketSort
* @Description //桶排序
* @Date: 2020/4/2
* @Version 1.0
*/
public class BucketSort {
public static double[] bucketSort(double[] array){
//1、得到数列的最大值和最小值,并算出差值
double max = array[0];
double min = array[