`
akon405
  • 浏览: 44832 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

2012/3/31----计数排序

 
阅读更多

计数排序的核心思想是:对需要排序的数组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);
		
	}

}
 
0
0
分享到:
评论

相关推荐

    C语言版的排序方法---计数排序.docx

    3. 计算每个元素的排名:遍历计数数组,并计算每个元素的排名,即该元素在排序后的位置。 4. 排序:使用计数数组中的排名信息,将原始数组中的元素排列到正确的位置。 5. 释放空间:最后,我们需要释放用于统计和...

    CRC算法验证工具V3.0. 用于计算或验证CRC8 CRC16 CRC32 结果

    本软件 用于计算或验证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计数抽样检验程序

    GB 2828.1-2012计数抽样检验程序

    算法-计数排序

    主要是对算法导论中计数排序的实现

    acm新手刷题攻略之poj

    3. **组合计数** - 推荐题目:[poj3176](https://vjudge.net/problem/POJ-3176)、[poj1080](https://vjudge.net/problem/POJ-1080)、[poj1159](https://vjudge.net/problem/POJ-1159) - 组合计数问题需要熟练掌握...

    算法-理论基础- 排序- 计数排序(包含源程序).rar

    计数排序是一种非基于比较的排序算法,它适用于待排序的元素是整数的情况。这种排序方法的思想是通过计算每个元素在输出数组中应该出现的次数来确定它们的位置,从而达到排序的目的。以下是对计数排序算法的详细介绍...

    基于机器视觉的昆虫害虫种类及数量检测源码.zip

    2017/4/9---------图片中昆虫虫体计数 2017/4/22-------PyQt和OpenCV_VideoFrame结合做出基本界面 摄像头Frame中检测虫体数目,并在界面中显示标出 学习昆虫图像特征的提取,参考论文中提出的几个特征量 提取...

    51+IIC通信协议详细注释.rar

    //延时循环计数 //} //------------------------------------------------------------------- void delay_IIC(void) {//IIC总线限速延时函数。 //该函数是空函数,延时4个机器周期。 ; ; } //-----------------...

    详解Java常用排序算法-计数排序

    Java 排序算法 - 计数排序 计数排序(Counting Sort)是一种非比较排序算法,它的基本思想是统计数组中每个元素出现的次数,然后根据元素出现的次数依次将元素放入有序的数组中。计数排序时间复杂度为 O(n+k),其中...

    基于K 邻近朴素贝叶斯LinearSVM机器视觉的害虫种类及数量检测 毕业设计 完整代码

    2017/4/9---------图片中昆虫虫体计数 2017/4/22-------PyQt 和 OpenCV_VideoFrame 结合做出基本界面 摄像头 Frame 中检测虫体数目,并在界面中显示标出 学习昆虫图像特征的提取,参考论文中提出的几个特征量 提取...

    mysql-connector-j-8.0.31.jar

    MySQL Connector/J 8.0.31 是 MySQL 数据库与 Java 应用程序之间的桥梁,它是一个实现了 Java Database Connectivity (JDBC) API 的驱动程序,允许 Java 开发者通过 Java 代码连接并操作 MySQL 数据库。这篇详述将...

    计数排序源代码C++实现

    3. **计算累积频率**:将计数数组中的每个元素替换为其前缀和,从而得到每个元素在排序数组中的最终位置。 4. **构建输出数组**:从后向前遍历待排序数组,根据计数数组中的累积频率将元素放置到输出数组中相应的...

    计数排序算法的C语言实现

    计数排序是一种非基于比较的排序算法,它的主要思想是通过统计待排序数组中每个元素出现的次数,然后根据这些计数来确定每个元素在排序结果中的位置。这种算法特别适用于整数排序,且在数据范围不大的情况下,效率极...

    GBT2828.1-2012 计数抽样检验标准的理解与实施[宣贯].ppt

    GBT2828.1-2012 计数抽样检验标准的理解与实施[宣贯].ppt

    计数排序的算法实现

    计数排序是一种非基于比较的排序算法,它适用于待排序的元素是整数的情况。这种算法的基本思想是通过统计每个不同整数出现的次数,然后根据这些计数值来确定每个元素在排序结果中的位置。计数排序的时间复杂度为O(n)...

    科日新 KPCI-832高速光隔计数/定时/测频卡用户手册.pdf

    3. 功能说明: - 计数功能:可对外部脉冲信号进行计数,测量频率,并提供独立或级联的工作模式。 - 测频功能:在设定的周期内统计脉冲信号数量,计算出脉冲频率,支持多通道频率测量。 - 脉冲输出功能:可以产生...

    javascript实例应用---计数转换类.rar

    javascript实例应用---计数转换类.rarjavascript实例应用---计数转换类.rarjavascript实例应用---计数转换类.rarjavascript实例应用---计数转换类.rar

    Python3实现计数排序(源代码)

    ### Python3实现计数排序(源代码) #### 实现原理 计数排序是一种非基于比较的排序算法,其核心思想是将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据...

    Java写的排序类(快速排序 堆排序 计数排序 桶排序 归并排序)

    //排序类 提供int排序的静态方法 有以下排序: 快速排序 堆排序 计数排序 桶排序 归并排序

Global site tag (gtag.js) - Google Analytics