欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[八排序(IV)] 归并排序 泡泡排序 计数排序 4.

最编程 2024-04-30 11:00:43
...

4.1基本概念

计数统计就是就是先统计相同元素出现的次数,出现次数每多一次,对应的数组下标就++,根据统计的结果将序列收回到原来的序列中。

4.2画图理解

计数排序

在这里插入图片描述

4.3代码实现

public int[] countOrder(int[] arr){
        int max=arr[0];
        int min=arr[0];
        for (int i=0;i<arr.length;i++){
            if(arr[i]>max){
                max=arr[i];
            }
        }
        for (int i=0;i<arr.length;i++){
            if(arr[i]<min){
                min=arr[i];
            }
        }
        int[] tmp=new int[max-min+1];
        for (int i=0;i<arr.length;i++){
            tmp[arr[i]-min]++;
        }
//写回arr
        int index=0;
        for (int i=0;i<tmp.length;i++){
            while (tmp[i]>0){
                arr[index]=i+min;
                index++;
                tmp[i]--;
            }
        }
        return arr;
    }

1.时间复杂度:O(MAX(N,范围))
2. 空间复杂度:O(范围)
3. 稳定性:稳定