至于啥叫计数排序就不说了,下面是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
分享到:
相关推荐
Java实现计数排序不是C,Java实现计数排序不是C,Java实现计数排序不是C
该资源提供了在Java中如何实现计数排序的全面指南。文档涵盖了计数排序的基本概念,包括如何对数组进行排序以及如何在Java中实现计数排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现计数排序,包括详细...
countingSort 方法实现了计数排序算法。首先,我们遍历一遍原数组,找出其中的最大值,以确定计数数组的大小。然后,创建计数数组 count,并将每个元素的出现次数记录在计数数组中。接下来,根据计数数组中的元素...
//排序类 提供int排序的静态方法 有以下排序: 快速排序 堆排序 计数排序 桶排序 归并排序
详解Java常用排序算法-计数排序
主要介绍了java 实现计数排序和桶排序实例代码的相关资料,需要的朋友可以参考下
介绍计数排序的概念、特点、优缺点、适用场景和java代码简单实现。
伪代码和算法介绍在此:http://www.algorithmist.com/index.php/Counting_sort,本程序是 根据这个伪代码编写的源代码
基数排序的关键思想是按照数字的个位、十位、百位等逐个进行计数排序,从最低位到最高位。在每个位上,使用计数排序来稳定地排序数组。通过多次迭代,对所有位进行排序后,最终得到有序的数组。 在示例代码中,我们...
用java实现了10种基础排序,其内容包括: 1.冒泡排序 2.选择排序 3.插入排序 4.快速排序 5.希尔排序 6.归并排序 7.堆排序 8.桶排序 9.基数排序 10.计数排序 如有疑问请私信我
十种经典的排序算法,桶排序,快速排序,计数排序,插入排序,希尔排序,堆排序等的Java描述与动图示意
冒泡排序,插入排序,希尔排序,选择排序,堆排序,归并排序,快速排序,桶排序,计数排序,基数排序,TimeSort排序
包括了堆排序 归并排序 快速排序 基数排序 选择排序 冒泡排序 插入排序 希尔排序 计数排序 桶排序等算法。
Java中常见的排序算法 1.直接插入排序 2.希尔排序 3.选择排序 4.冒泡排序 5.... 6.快速排序 7....计数排序 9.桶排序 10.基数排序 包含这十种算法的讲解以及动态图解(ppt)和java实现
常用排序算法的Java实现源码,包括冒泡排序,快速排序,直接插入排序,希尔排序,直接选择排序,堆排序,归并排序,基数排序,计数排序。
java排序 七.计数排序及其实现 八.基数排序及其实现 九. 桶排序及其实现 十. 堆排序及其实现 十一.二叉树排序及有序集合 十二.利用集合的4种排序排序方式
java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) ...7. 计数排序(Counting Sort) 8. 桶排序(Bucket Sort) 9. 基数排序(Radix Sort) 10. 希尔排序(Shell Sort)
Java实现的排序演示系统,包括选择排序、冒泡排序、插入排序、希尔排序、快速排序、归并排序、堆排序、计数排序八种排序算法的实现与动画演示。
单词计数和排序程序
1. 选择排序 2. 冒泡排序 3. 插入排序 4. 希尔排序 5. 堆排序 6. 归并排序 7.... 8.... 9. 计数排序 10. 桶排序 十种排序代码 我的博文地址:http://blog.csdn.net/u010156024/article/details/48932219