数据结构之桶排序
数据结构之桶排序
桶排序--将数组分配到有限数量的筒子里面去,每个筒子在按照一定的排序算法,或者递归调用桶排序对桶里面的数据进行排序的算法
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); } }