计数排序的核心思想是:对需要排序的数组A,计算出A中各个元素在排序后的数组B中的位置,然后在把A中的数值存放到B中相应的位置。
这里最重要的步骤就是对A中每一个元素进行计算,算出这个元素所在的位置。
下面就是详细代码:
/*
* 计数排序算法的java实现
* @version 1.0 2012/3/31
* @author akon
*/
package com.akon405.www;
public class CountingSort {
public CountingSort(int[] A,int lenght,int largest){
int[] temp = new int[largest+1];//创建一个临时数组,这个数组有两个用处
int i;
int[] B=new int[lenght];
for(i=0;i<=largest;i++){
temp[i]=0;
}
for(i=1;i<A.length;i++){
temp[A[i]]++;//计算出A[i]的个数,把个数存在temp[A[i]]中
}
for(i=1;i<=largest;i++){
temp[i]=temp[i]+temp[i-1];//计算出<=i的个数,存放在temp[i]中
}
for(i=lenght-1;i>=0;i--){
B[temp[A[i]]]=A[i];//temp[A[i]]为在数组A中,小于等于A[i]的个数
temp[A[i]]--;//个数减1
}
//输出排序的结果
for(i=0;i<lenght;i++){
System.out.print(B[i]+",");
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] A={1,2,3,9,4,7,5,2,8};
int large=9;
int lenght=A.length;
System.out.print("排序结果:");
new CountingSort(A,lenght,large);
}
}
分享到:
相关推荐
计数排序作为排序算法中的一个重要分支,尽管它并不基于元素间的比较操作,却以其独特的方式解决了特定范围内的整数排序问题。计数排序的核心思想在于统计每个待排序数值在原数组中的出现频率,然后依据这些频率信息...
本软件 用于计算或验证CRC8 CRC16 CRC32 等50多种计数结果。 LRC-冗余校验 ---------- C0 BBC-异或校验 ---------- 80 CRC-6/ITU ------------- 35 CRC-7/MMC ------------- 2A CRC-8 ----------------- E9 CRC-8/...
GB 2828.1-2012计数抽样检验程序
主要是对算法导论中计数排序的实现
3. **组合计数** - 推荐题目:[poj3176](https://vjudge.net/problem/POJ-3176)、[poj1080](https://vjudge.net/problem/POJ-1080)、[poj1159](https://vjudge.net/problem/POJ-1159) - 组合计数问题需要熟练掌握...
计数排序是一种非基于比较的排序算法,它适用于待排序的元素是整数的情况。这种排序方法的思想是通过计算每个元素在输出数组中应该出现的次数来确定它们的位置,从而达到排序的目的。以下是对计数排序算法的详细介绍...
2017/4/9---------图片中昆虫虫体计数 2017/4/22-------PyQt和OpenCV_VideoFrame结合做出基本界面 摄像头Frame中检测虫体数目,并在界面中显示标出 学习昆虫图像特征的提取,参考论文中提出的几个特征量 提取...
//延时循环计数 //} //------------------------------------------------------------------- void delay_IIC(void) {//IIC总线限速延时函数。 //该函数是空函数,延时4个机器周期。 ; ; } //-----------------...
Java 排序算法 - 计数排序 计数排序(Counting Sort)是一种非比较排序算法,它的基本思想是统计数组中每个元素出现的次数,然后根据元素出现的次数依次将元素放入有序的数组中。计数排序时间复杂度为 O(n+k),其中...
第40课 桶排序 -计数-20241206125259.pdf
2017/4/9---------图片中昆虫虫体计数 2017/4/22-------PyQt 和 OpenCV_VideoFrame 结合做出基本界面 摄像头 Frame 中检测虫体数目,并在界面中显示标出 学习昆虫图像特征的提取,参考论文中提出的几个特征量 提取...
毕业设计昆虫识别和数量统计昆虫识别项目介绍名称基于机器视觉的害虫种类及数量检测要求检测数量和昆虫种类识别项目记录2017/4/8---------二值化2017/4/9---------图片中昆虫虫体计数2017/4/22--------PyQt和OpenCV_...
MySQL Connector/J 8.0.31 是 MySQL 数据库与 Java 应用程序之间的桥梁,它是一个实现了 Java Database Connectivity (JDBC) API 的驱动程序,允许 Java 开发者通过 Java 代码连接并操作 MySQL 数据库。这篇详述将...
3. **计算累积频率**:将计数数组中的每个元素替换为其前缀和,从而得到每个元素在排序数组中的最终位置。 4. **构建输出数组**:从后向前遍历待排序数组,根据计数数组中的累积频率将元素放置到输出数组中相应的...
计数排序是一种非基于比较的排序算法,它的主要思想是通过统计待排序数组中每个元素出现的次数,然后根据这些计数来确定每个元素在排序结果中的位置。这种算法特别适用于整数排序,且在数据范围不大的情况下,效率极...
3. 全面质量管理:20世纪60年代提出,这一管理方法融入了多种科学管理方法,如全面质量管理(TQM)、国际标准化组织(ISO)、全面生产维护(TPM)、六西格玛(6σ)等。统计质量控制是全面质量管理中不可或缺的部分...
GBT2828.1-2012 计数抽样检验标准的理解与实施[宣贯].ppt
计数排序是一种非基于比较的排序算法,它适用于待排序的元素是整数的情况。这种算法的基本思想是通过统计每个不同整数出现的次数,然后根据这些计数值来确定每个元素在排序结果中的位置。计数排序的时间复杂度为O(n)...
3. 功能说明: - 计数功能:可对外部脉冲信号进行计数,测量频率,并提供独立或级联的工作模式。 - 测频功能:在设定的周期内统计脉冲信号数量,计算出脉冲频率,支持多通道频率测量。 - 脉冲输出功能:可以产生...
第41课-桶排序-排序-20241206125304.pdf