`
akon405
  • 浏览: 45941 次
  • 性别: 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
分享到:
评论

相关推荐

    Knight's Microsoft SQL Server 2012

    ### Knight’s Microsoft SQL Server 2012 Integration Services 24-Hour Trainer #### 概述 本教材《Knight’s Microsoft SQL Server 2012 Integration Services 24-Hour Trainer》旨在为读者提供全面而深入的学习...

    数据结构考研真题(09-12)

    因此,前5层共有\(2^0 + 2^1 + 2^2 + 2^3 + 2^4 = 1 + 2 + 4 + 8 + 16 = 31\)个结点,加上第6层的8个结点,总共有39个结点。然而,由于这是一棵完全二叉树,最后一层可能还有其他结点,所以结点总数应该大于39。选项...

    苹果8XPC和手机二合一完整版

    ****************************模板规范化管理 开始**************************** ... 每个模版都可定义不同的样式,所以系统内置的功能的相关... [gbook:numjoin] 如使用start参数,则自动从start开始计数 [gbook:id] ...

    一天一个shell命令 linux好管家-磁盘-du命令详解

    例如,可以使用`du`与`sort`命令结合来按文件大小排序输出结果,或者使用`du`与`awk`来对结果进行进一步处理。 #### 七、总结 通过本文的介绍,读者应该能够掌握`du`命令的基本使用方法,并能够在实际工作中灵活...

    数据库原理实验报告(1).docx

    数据库原理实验报告主要涵盖了数据库设计的基本概念和SQL Server 2012的使用,通过一个名为"Ebook"的网上购书数据库案例进行实践操作。实验旨在让学生理解和掌握数据库设计过程,包括需求分析、概要设计和逻辑设计,...

    【精选+详解】2013届高三数学名校试题汇编(第3期)专题10 计数原理和二项式定理 理

    【计数原理与二项式定理】是高中数学中的重要知识点,主要涉及组合数的计算和二项式定理的应用。二项式定理是指数级数展开的核心,它指出一个二项式 (a + b)^n 的展开式是由 n+1 项构成的,每一项都可以通过组合数来...

    Linux与unix shell编程指南1.rar

    11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail将输出分类 109 11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统sort 110 11.3 ...

Global site tag (gtag.js) - Google Analytics