数据结构之桶排序

数据结构之桶排序

桶排序--将数组分配到有限数量的筒子里面去,每个筒子在按照一定的排序算法,或者递归调用桶排序对桶里面的数据进行排序的算法

package com.cesec.utils.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
 * Created by Administrator on 2018/2/4.
 */
public class BucketSort {
    int buckSize = 10;
    int arraySize = 100000;

    //随机生成33333个数据
    public int[] getArray(){
        int[] arr = new int[arraySize / 3];
        Random r = new Random();
        for (int i = 0; i < arraySize; i++) {
            arr[i] = r.nextInt(100000);
        }
        return arr;
    }

    public void buckSort(int[] a){
        List<Integer> bucket[] = new ArrayList[buckSize];
        for(int i = 0; i < a.length ; i++){
            int temp = a[i]/100000;
            if(bucket[temp] == null){
                bucket[temp] = new ArrayList<>();
            }
            bucket[temp].add(temp);
        }
        for(int j = 0;j < buckSize;j++){
            insertSort(bucket[j]);
            printList(bucket[j]);
        }
    }

    private void printList(List<Integer> integers) {
        for(Integer v: integers){
            System.out.println(v);
        }
    }

    private void insertSort(List<Integer> integers) {
        Collections.sort(integers);
    }

}
原文地址:https://www.cnblogs.com/zhangchiblog/p/8414089.html