码迷,mamicode.com
首页 > 编程语言 > 详细

java中的计数排序算法

时间:2020-04-18 13:38:32      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:str   div   统计   最大   创建   排序   array   java   最大的   

public void countingsort(int[] array, int[] b, int k) 
    {
        //创建数组c
        int[] c = new int[k+1];
        for(int i=0;i<c.length;i++)
        {
            c[i] = 0;
        }
        //统计数组array中每个元素出现的次数
        for(int i=0;i<array.length;i++)
        {
            c[array[i]]++;
        }
        /**
         * 统计数组中小于等于某一个数的的个数
         * 因为小于等于0的数的个数就是等于0的个数,所以迭代从1开始
         */
        for(int i=1;i<c.length;i++)
        {
            c[i] =c[i] + c[i-1];
        }
        
        for(int i=0;i<array.length;i++)
        {
            /**
             * 
             */
            b[c[array[i]] - 1] = array[i];
            /**
             * 
             */
            c[array[i]]--;
        }
    }
    
    public static void main(String[] args) {
        int[] array =new int[]{3,13,5,2,55,17,20,1,6,5};
        int[] b = new int[10];
        new Counting().countingsort(array,b,55);//其中55为数组中最大的元素值
        for(int i=0;i<b.length;i++)
        {
            System.out.print(b[i]+" ");
        }
    }

 

java中的计数排序算法

标签:str   div   统计   最大   创建   排序   array   java   最大的   

原文地址:https://www.cnblogs.com/suyun0702/p/12673469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!