`
ackerman
  • 浏览: 75012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

排序算法---计数排序

 
阅读更多

 

#include <stdio.h>
void count_sort(int a[], int n)
{
        int i,min,max;
        min=max=a[0];
        for(i=0;i<n;i++)
        {
                if(a[i]>max)
                        max=a[i];
                if(a[i]<min)
                        min=a[i];
        }
        int count[max-min+1]={0};
        for(i=0;i<n;i++)
                count[a[i]-min]++;
        int j=k=0;;
        for(i=min;i<=max;i++)
                for(j=0;j<count[i-min];j++)
                        a[k++]=i;
}
分享到:
评论

相关推荐

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

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

    最快的排序算法 计算机最快的算法-史上14个最快速算法:孩子的计算能力爆表!大脑堪比计算机!...,排序算法数据结构

    计数排序算法是一种高效的排序算法,它的工作原理是通过将数组中的每个元素转换成一个计数,然后将计数排序,以达到排序的目的。计数排序算法的时间复杂度为O(n+k),因此它适合大规模的数据排序。 11.Timsort排序...

    经典算法的C#源码实现

    经典的排序算法C#源码,包括: 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序...经典排序算法 - 计数排序Counting sort

    java排序算法-大全.rar

    8. **计数排序、桶排序、基数排序**:这些是线性时间复杂度的非比较型排序算法,适用于特定的数据分布情况,例如整数排序。 这个压缩包中的Java代码实现可以帮助我们深入理解这些算法的逻辑和细节,同时也可以作为...

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

    计数排序是一种非比较排序算法,它的工作原理是通过统计每个元素在数组中的出现次数,然后根据这些统计结果将元素排列到正确的位置。下面是对计数排序的详细解释: 1. 初始化计数数组:在计数排序算法中,我们需要...

    排序算法 - Axb的自我修养1

    【排序算法概述】 排序算法是计算机科学中至关重要的一部分,它涉及到如何有效地重新排列一组数据,使其按照特定标准(如升序或降序)排列。排序算法的效率对程序的性能有着显著影响,尤其是在处理大量数据时。虽然...

    算法-计数排序

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

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

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

    超级经典的计数排序算法,号称效率达到了O(n)

    超级经典的计数排序算法,号称效率达到了O(n) 超级经典的计数排序算法,号称效率达到了O(n) 超级经典的计数排序算法,号称效率达到了O(n) 超级经典的计数排序算法,号称效率达到了O(n) 超级经典的计数排序算法,号称...

    算法-基础算法- 排序算法(包含源程序).rar

    8. 计数排序、桶排序和基数排序:这三种是线性时间复杂度的非比较排序算法,适用于特定类型的数据,如整数排序。它们不是比较元素之间的大小,而是利用数据特性进行排序。 了解并掌握这些排序算法有助于提升编程...

    排序算法-基于C语言实现的排序算法之RadixSort实现.zip

    通常使用计数排序(Counting Sort)作为内部排序方法,因为它能快速地将元素分配到对应的桶中。 3. **收集排序**:当所有元素在桶中分布完成后,按照桶的顺序依次收集元素,形成新的有序序列。 4. **重复步骤2和3*...

    排序算法-java实现

    7. **计数排序**(Counting Sort)、**桶排序**(Bucket Sort)和**基数排序**(Radix Sort):这三种排序算法属于非比较型排序,适用于特定类型的数据。例如,基数排序适用于整数排序,根据每一位进行排序。它们的...

    排序算法-基于C语言实现的排序算法之CountingSort实现.zip

    **排序算法是计算机科学中的重要概念,用于组织和优化数据结构。在众多的排序算法中,Counting Sort是一种非比较型整数排序算法,它的基本思想是对每一个输入元素x,确定出小于x的元素个数,然后利用这一信息,可以...

    (完整word版)十大经典排序算法-C语言.pdf

    线性时间非比较类排序,例如快速排序或计数排序,不依赖于比较操作,它们能在更短的时间内完成排序,有些甚至达到线性时间复杂度O(n)。 以下是详细讲解的两种排序算法: 1. **冒泡排序**: - 冒泡排序通过重复...

    算法-数据结构和算法-10-选择排序.rar

    - **计数排序**、**桶排序**和**基数排序**:适用于特定类型的数据,如非负整数,它们可以在线性时间复杂度内完成排序。 ### 实际应用: 在编程竞赛、数据结构与算法的学习中,选择排序是一个基础概念,有助于理解...

    数据结构和算法-思维导图.pdf

    - 各种排序算法如冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、基数排序和计数排序的时间复杂度。 - 排序算法的稳定性,例如快速排序是不稳定的,而归并排序是稳定的。 3. **字符串处理...

    计数排序算法实例

    计数排序是一种非基于比较的排序算法,它适用于待排序数据是整数的情况。这种算法的基本思想是通过统计每个整数出现的次数,然后利用这些信息来直接确定每个元素在输出数组中的位置。计数排序在某些特定情况下可以...

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

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

    各种排序算法比较

    - **O(n)**:线性排序算法如计数排序、基数排序以及二路归并排序的辅助空间为O(n)。 - **O(1)**:除了上述提到的线性排序算法外,其他大多数排序算法的辅助空间为O(1),即常数级空间复杂度。 #### 四、其他比较 ...

Global site tag (gtag.js) - Google Analytics