c_cpp 计数排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 计数排序相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void countingsort(int* a, int n, int max){
    int b[n],c[max+1],i;
    for(i=0; i<=max; i++)
        c[i] = 0;
    for(i=0; i<n; i++)
        c[a[i]]++;
    for(i=1; i<=max; i++)
        c[i] = c[i]+c[i-1];
    for(i=n-1; i>=0; i--){
        b[c[a[i]]-1] = a[i];
        c[a[i]]--;
    }
    for(i=0; i<n; i++)
        a[i] = b[i];
}

int main(){
    int n;
    printf("Enter size of array\n");
    scanf("%d",&n);
    int a[n],i,max;
    printf("Enter elements of array\n");
    scanf("%d",&a[0]);
    max = a[0];
    for(i=1; i<n; i++){
        scanf("%d",&a[i]);
        if(a[i] > max) max=a[i];
    }
    countingsort(a,n,max);
    printf("Sorted array:\n");
    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    return 0;
}

以上是关于c_cpp 计数排序的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 计数排序

c_cpp 排序数组中的绝对不同计数

c_cpp 地图::计数()

c_cpp 计数()

c_cpp 计数设定位

c_cpp 具有不同值的连续元素的数组的计数