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 具有不同值的连续元素的数组的计数