场景:例如:8,6,8,5,7,3,2,0,5,5 将这些数字进行从小到大排序。
// 对数据源中的最大数加1,则为数组的长度。
int[] bucket = new int[9];
int[] score = {8, 6, 8, 5, 7, 3, 2, 0, 5, 5};
// 对桶进行初始化 0
for (int i = 0; i < 9; i++) {
bucket[i] = 0;
}
// 对桶进行标记,数字出现一次,值加1,对桶进行投 1 票
for (int i = 0; i < score.length; i++) {
bucket[score[i]] = bucket[score[i]] + 1;
}
// 下标对应的桶值为多大,则输出打印几次
for (int i = 0; i < bucket.length; i++) {
for (int j = 0; j < bucket[i]; j++) {
System.out.println(i);
}
}
下图为排序结果: