好程序员Java学习路线分享5分钟了解计数排序-创新互联

好程序员Java学习路线分享5分钟了解计数排序,前言:计数排序是一种非比较性质的排序算法,计数排序借助辅助空间记录每个元素出现的次数,根据次数确定每一个元素最终的位置。
计数排序思想介绍
1根据待排序数组,获取大值和最小值,得到所有元素的范围 [m,n]
2新建一个长度为n-m+1的临时数组
3遍历待排序数组,元素的值-m作为临时数组下标,该下标位置记录元素出现次数
4遍历结束,临时数组就存储了每个元素出现的次数
5根据该临时数组,最终得到排序后元素

我们提供的服务有:成都做网站、网站建设、微信公众号开发、网站优化、网站认证、金州ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的金州网站制作公司

算法说明:
待排序数据:12,4,6,7,4,6
数据范围为[4,12],临时数组长度为12-4+1=9
好程序员Java学习路线分享5分钟了解计数排序

最终得到排序后序列:4,4,6,6,7,12
计数排序的代码实现
1.public static void sortCount(int[] arr) {  
2.        int max = 0;  
3.        int min = 0;  
4.        // 获取数组的大值和最小值  
5.        for(int i = 0; i < arr.length; i++){  
6.            max = Math.max(max, arr[i]);  
7.            min = Math.min(min, arr[i]);  
8.        }  
9.        int len = arr.length;  
10.        // 创建临时数组  
11.        int[] temp = new int[max - min + 1];  
12.        // 计数  
13.        for(int i = 0; i < len; i++) {  
14.            temp[arr[i] - min] += 1;  
15.        }  
16.        // 将临时数组中数据依次放回原数组  
17.        for(int i = 0, index = 0; i < temp.length; i++) {  
18.            int item = temp[i];  
19.            while(item-- != 0) {  
20.                arr[index++] = i + min;  
21.            }  
22.        }  
23.    }  

总结
计数排序需要占用额外的存储空间,它比较适用于数据比较集中的情况。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


标题名称:好程序员Java学习路线分享5分钟了解计数排序-创新互联
当前网址:http://hxwzsj.com/article/disioh.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都定制网站建设 重庆网站制作 外贸营销网站建设 成都营销网站制作 成都网站制作 手机网站制作设计 成都网站设计 成都网站建设 app网站建设 成都定制网站建设 成都商城网站建设 梓潼网站设计 响应式网站设计方案 定制级高端网站建设 成都响应式网站建设公司 品牌网站建设 网站建设方案 成都网站设计 网站设计制作报价 成都品牌网站设计 成都响应式网站建设 网站设计公司