计数排序
十大常用的排序算法中,这三种算法都用到了桶的概念
- 基数排序:根据键值的每位数字来分配桶;
- 计数排序:每个桶只存储单一键值;
- 桶排序:每个桶存储一定范围的数值;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class MyCountSort { 2 public static void main(String[] args) { 3 int num[] = {10, 10, 33, 54, 33, 6, 6, 7, 3, 3}; 4 countingSort(num); 5 } 6 7 private static void countingSort(int[] num) { 8 int min = num[0]; 9 int max = num[0]; 10 for (int i = 0; i < num.length; i++) { 11 if (num[i] > max) { 12 max = num[i]; 13 } 14 if (num[i] < min) { 15 min = num[i]; 16 } 17 } 18 int offset = 0 - min; 19 int count[] = new int[max - min + 1]; 20 for (int i = 0; i < num.length; i++) { 21 count[num[i] + offset]++; 22 } 23 for (int i = 0; i < count.length; i++) { 24 while (count[i] > 0) { 25 System.out.print(i - offset + " "); 26 count[i]--; 27 } 28 } 29 } 30 }
你为什么不努力。。