`

Java之计数排序

阅读更多

至于啥叫计数排序就不说了,下面是Java的实现,计数排序就是不用进行元素的比较,效率较高,只是其适用范围有限(特殊条件)。

 

public class CountSort 
{
	public static void main(String[] args)
	{
		int[] a = {3, 1, 6, 0, 3, 0, 1, 5, 3, 6};
		
		int max = getMax(a);
		
		Display(a, "Before sort:");
		
		a = Sort(a, max);
		
		Display(a, "After  sort:");
	}
	
	public static int[] Sort(int[] a, int max)
	{
		int[] b = new int[a.length];
		int[] c = new int[max+1];
		
		for(int i=0; i<b.length; i++)
			b[i] = 0;
		
		for(int i=0; i<c.length; i++)
			c[i] = 0;
		
		int temp = 0;
		for(int i=0; i<a.length; i++)
		{
			temp = a[i];
			c[temp] = c[temp] + 1;
		}
		
		for(int i=1; i<c.length; i++)
			c[i] = c[i] + c[i-1];
		
		for(int i=a.length-1; i>=0; i--)
		{
			temp = a[i];
			
			b[c[temp]-1] = temp;
			c[temp] = c[temp] - 1;
		}
		
		return b;
	}
	
	public static int getMax(int[] a)
	{
		int max = a[0];
		
		for(int i=1; i<a.length; i++)
		{
			if(a[i] > max)
				max = a[i];
		}
		
		return max;
	}
	
	public static void Display(int[] a, String str)
	{
		System.out.println(str);
		
		for(int i=0; i<a.length; i++)
			System.out.print(a[i] + " ");
		
		System.out.println();
	}
}

//输出结果为:
//Before sort:
//3 9 1 8 6 0 4 7 2 9 6 2 3 8 
//After  sort:
//0 1 2 2 3 3 4 6 6 7 8 8 9 9 

 

0
0
分享到:
评论

相关推荐

    Java实现计数排序

    Java实现计数排序不是C,Java实现计数排序不是C,Java实现计数排序不是C

    [Java算法-排序练习]计数排序.java

    该资源提供了在Java中如何实现计数排序的全面指南。文档涵盖了计数排序的基本概念,包括如何对数组进行排序以及如何在Java中实现计数排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现计数排序,包括详细...

    Java实现计数排序算法(源代码)

    计数排序是一种非比较型整数排序算法,特别适用于一定范围内的非负整数排序。该算法通过统计每个元素出现的次数来确定元素在排序后数组中的位置,从而达到排序的目的。计数排序的时间复杂度为O(n+k),其中n为待排序...

    java实现计数排序算法

    countingSort 方法实现了计数排序算法。首先,我们遍历一遍原数组,找出其中的最大值,以确定计数数组的大小。然后,创建计数数组 count,并将每个元素的出现次数记录在计数数组中。接下来,根据计数数组中的元素...

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

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

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

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

    java 实现计数排序和桶排序实例代码

    主要介绍了java 实现计数排序和桶排序实例代码的相关资料,需要的朋友可以参考下

    计数排序介绍和java代码实现

    介绍计数排序的概念、特点、优缺点、适用场景和java代码简单实现。

    计数排序JAVA实现counting sort algorithm

    伪代码和算法介绍在此:http://www.algorithmist.com/index.php/Counting_sort,本程序是 根据这个伪代码编写的源代码

    java实现基数排序算法

    基数排序的关键思想是按照数字的个位、十位、百位等逐个进行计数排序,从最低位到最高位。在每个位上,使用计数排序来稳定地排序数组。通过多次迭代,对所有位进行排序后,最终得到有序的数组。 在示例代码中,我们...

    基于java实现的10种基本排序方式

    用java实现了10种基础排序,其内容包括: 1.冒泡排序 2.选择排序 3.插入排序 4.快速排序 5.希尔排序 6.归并排序 7.堆排序 8.桶排序 9.基数排序 10.计数排序 如有疑问请私信我

    Java十大经典排序算法

    十种经典的排序算法,桶排序,快速排序,计数排序,插入排序,希尔排序,堆排序等的Java描述与动图示意

    Java 实现 11 种排序算法

    冒泡排序,插入排序,希尔排序,选择排序,堆排序,归并排序,快速排序,桶排序,计数排序,基数排序,TimeSort排序

    各种排序代码的JAVA实现

    包括了堆排序 归并排序 快速排序 基数排序 选择排序 冒泡排序 插入排序 希尔排序 计数排序 桶排序等算法。

    java常见排序算法合集讲解以及java实现.zip

    Java中常见的排序算法 1.直接插入排序 2.希尔排序 3.选择排序 4.冒泡排序 5.... 6.快速排序 7....计数排序 9.桶排序 10.基数排序 包含这十种算法的讲解以及动态图解(ppt)和java实现

    常用排序算法源码下载(Java实现)

    常用排序算法的Java实现源码,包括冒泡排序,快速排序,直接插入排序,希尔排序,直接选择排序,堆排序,归并排序,基数排序,计数排序。

    Java实现排序的12种方式(3).zip_java排序(3)_八叉树

    java排序 七.计数排序及其实现 八.基数排序及其实现 九. 桶排序及其实现 十. 堆排序及其实现 十一.二叉树排序及有序集合 十二.利用集合的4种排序排序方式

    java十大排序算法实现

    java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) ...7. 计数排序(Counting Sort) 8. 桶排序(Bucket Sort) 9. 基数排序(Radix Sort) 10. 希尔排序(Shell Sort)

    排序演示系统(Java)

    Java实现的排序演示系统,包括选择排序、冒泡排序、插入排序、希尔排序、快速排序、归并排序、堆排序、计数排序八种排序算法的实现与动画演示。

    单词计数和排序程序

    单词计数和排序程序

Global site tag (gtag.js) - Google Analytics