当前位置: 首页 > news >正文

java排序算法-计数排序

计数排序的思路

计数排序的基本思路:

  1. 确定取值范围: 遍历整个待排序的数组,确定数组中元素的取值范围,找到最小值和最大值。
  2. 创建计数数组: 创建一个计数数组,其长度为取值范围的大小,用于统计原始数组中每个元素出现的次数。
  3. 统计元素个数: 遍历原始数组,将每个元素出现的次数记录到计数数组中,计数数组的索引对应于元素的值。
  4. 累加计数数组: 对计数数组进行累加操作,每个位置的值等于其前面所有位置值之和。这一步的目的是确定每个元素在排序后的数组中的位置。
  5. 构建有序数组: 创建一个与原始数组等长的临时数组,遍历原始数组,根据累加计数数组确定每个元素在有序数组中的位置,同时更新计数数组中对应元素的计数。
  6. 得到排序结果: 此时,临时数组就是排序完成的结果。
public class Sort {//5.计数排序public static int[] countingSort(int... array){int max=array[0],i,j;for(i=1;i<array.length;i++){if(array[i]>max){max=array[i];}}//新建max+1的整数数组int[] tempArray = new int[max+1];for (i = 0; i < array.length; i++) {tempArray[array[i]]++;}for (i = 0,j=0; i < tempArray.length; i++) {for (int k = 0; k < tempArray[i]; k++) {array[j++]=i;}}return array;}public static void main(String[] args) {int[] a={52,1,0,49,70,62,81,17};System.out.println(Arrays.toString(countingSort(a)));}
}

结果展示 

http://www.xdnf.cn/news/139933.html

相关文章:

  • OCR(Optical Character Recognition),光学字符识别
  • HashMap底层原理 什么是哈希表?哈希冲突?如何处理哈希冲突?
  • kotlin与MVVM结合使用总结(三)
  • (Go Gin)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
  • 防火墙技术深度解析:从包过滤到云原生防火墙的部署与实战
  • 【1】GD32 系统架构、内核、中断系统、存储器系统
  • IDEA编写flinkSQL(快速体验版本,--无需配置环境)
  • Vue3后代组件多祖先通讯设计方案
  • OpenCV 图形API(63)图像结构分析和形状描述符------计算图像中非零像素的边界框函数boundingRect()
  • 52.[前端开发-JS实战框架应用]Day03-AJAX-插件开发-备课项目实战-Lodash
  • ubuntu20.04安装x11vnc远程桌面
  • AI数据分析的利器:解锁BI工具的无限潜力
  • android将打包文件的password和alias写入到本地文件
  • 区块链如何达成共识:PoW/PoS/DPoS的原理、争议与适用场景全解
  • 一些有关ffmpeg 使用(1)
  • LSPatch官方版:无Root Xposed框架,自由定制手机体验
  • MySQL的日志--Undo Log【学习笔记】
  • MCP认证考试技术难题实战破解:从IP冲突到PowerShell命令的深度指南
  • Hadoop进阶之路
  • 第100+39步 ChatGPT学习:R语言实现Xgboost SHAP
  • AI网络渗透kali应用(gptshell)
  • 第十二天 使用Unity Test Framework进行自动化测试 性能优化:Profiler分析、内存管理
  • 【QQmusic自定义控件实现音乐播放器核心交互逻辑】第三章
  • PyCharm 中 FREECAD 二次开发:从基础建模到深度定制
  • uni-app中获取用户实时位置完整指南:解决权限报错问题
  • 运维之SSD硬盘(SSD hard Drive for Operation and Maintenance)
  • Spring Cloud Gateway 如何将请求分发到各个服务
  • AI 工程师崛起:科技浪潮下的新兴力量
  • 机器学习的基本概念
  • 纯HTMLCSS静态网站——元神