#include<stdio.h>
countsort(int *a,int *b,int n,int k)
{
int i,j;
int *c=malloc(sizeof(int)*k);
for(i=0;i<=k;i++)
c[i]=0; ³õʼ»¯Êý×éc[]
for(j=0;j<n;j++)
c[a[j]]=c[a[j]]+1; //
for(i=1;i<=k;i++)
c[i]=c[i]+c[i-1]; //c[i]°üº¬Ð¡ÓÚµÈÓÚiµÄÔªËظöÊý
for(j=n-1;j>=0;j--)
{
b[c[a[j]]-1]=a[j]; //´Ó0¿ªÊ¼ ¼õ1
c[a[j]]=c[a[j]]-1;
}
}
int main()
{
int i;
int a[]={2,5,3,0,2,3,0,3};
int b[8]={0};
int n=8;
int max=5;
countsort(a,b,n,max);
for(i=0;i<8;i++)
printf("%d ",b[i]);
}
countsort
最新推荐文章于 2022-08-16 21:38:16 发布