java实现桶排序

参考文章: https://www.jianshu.com/p/c4217456c224. 感谢.

 

import sort.SortUtil;
import sort.insert.InsertSort;

import java.util.Arrays;

public class BucketSort2 {
    // 每个桶内数据排序借助于其他排序算法
    private static final InsertSort insertSort = new InsertSort();
    private static final int BUCKET_SIZE = 5;

    public static void bucketSort2(int[] data){
        int min = SortUtil.getMin(data);
        int max = SortUtil.getMax(data);
        // 计算桶的数量, 
        int bucketCount = (max-min) / BUCKET_SIZE + 1;
        //  一个桶为一个数组, 多个桶实际上就是个二维数组
        // 注意此处二维数组中的第二维数组的初始大小为0
        int[][] buckets = new int[bucketCount][0];
        for(int i=0; i

 

 

public class InsertSort {
    
    public static int[] sort(int[] data) {
        int length = data.length;
        for(int i=1; i=0&&data[j]>temp; j--){
                    data[j+1] = data[j];
                }
                data[j+1] = temp;
            }
        }
        return data;
    }
}

 

你可能感兴趣的:(java,算法练习题)