桶式排序
实现代码:
/**
*桶式排序:有限个数字m,每个数字的大小都在1与n之间
*,则我们可以假设有n个桶,遍历m个数字,将其存入对应的桶中
*(如数字的值为3,就存入3号桶,桶的值对应存入数字的个数)
*/
public class BucketSort {
public static void sort(int[] arr){
//求得最大值
int max = arr[0];
for(int i = 0;i < arr.length;i ++){
if(max < arr[i]){
max = arr[i];
}
}
//创建桶
int[] count = new int[max+1];
for(int i = 0;i < arr.length;i ++){
count[arr[i]] ++;
}
//倒出桶
for(int i = 0,j = 0;i <= max;i ++){
if(count[i] != 0){
arr[j++] = i;
}
}
}
}