Java 计数排序

计数排序(Counting Sort)是一种非比较型排序算法,适用于一定范围内的整数排序。它的基本思想是通过计数输入元素中每个值出现的次数,然后计算每个值的起始位置,最终将元素放到正确的位置上。计数排序的时间复杂度为 O(n + k),其中 n 是输入数组的长度,k 是输入元素的范围。

以下是计数排序的 Java 实现:

import java.util.Arrays;  
  
public class CountingSort {  
  
    // 计数排序算法  
    public static void countingSort(int[] array) {  
        if (array.length == 0) {  
            return;  
        }  
  
        // 找到数组中的最大值和最小值  
        int max = array[0];  
        int min = array[0];  
        for (int num : array) {  
            if (num > max) {  
                max = num;  
            }  
            if (num < min) {  
                min = num;  
            }  
        }  
  
        // 计算范围大小  
        int range = max - min + 1;  
  
        // 创建计数数组并初始化  
        int[] countArray = new int[range];  
        Arrays.fill(countArray, 0);  
  
        // 统计每个元素出现的次数  
        for (int num : array) {  
            countArray[num - min]++;  
        }  
  
     
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值