数组的下标是一个隐含的很有用的数组,特别是在统计一些数字,或者判断一些整型数是否出现过的时候。例如,给你一串字母,让你判断这些字母出现的次数时,我们就可以把这些字母作为下标,在遍历的时候,如果字母a遍历到,则arr[a]就可以加1了,即 arr[a]++;

    问题:给你n个无序的int整型数组arr,并且这些整数的取值范围都在0-20之间,要你在 O(n) 的时间复杂度中把这 n 个数按照从小到大的顺序打印出来。

    1. public void f(int arr[]) {
    2. int[] temp = new int[21];
    3. for (int i = 0; i < arr.length; i++) {
    4. temp[arr[i]]++;
    5. }
    6. //顺序打印
    7. for (int i = 0; i < 21; i++) {
    8. for (int j = 0; j < temp[i]; j++) {
    9. System.out.println(i);
    10. }
    11. }
    12. }