//计数排序
#include <stdio.h>
void count_sort(int *a,int *b,int size,int k)
{
int c[1000],i,value,pos;
for(i=0;i<=k;i++)
c[i]=0;
for(i=0;i<size;i++)
c[a[i]]++;
for(i=1;i<=k;i++)
c[i]=c[i]+c[i-1];
for(i=0;i<size;i++)
{
value=a[i];
pos=c[value];
b[pos-1]=value;
c[value]--;
}
}
void main()
{
int a[]={2,5,3,0,2,3,0,3},b[100];
count_sort(a,b,8,5);
for(int i=0;i<8;i++)
printf("%d ",b[i]);
printf("\n");
}
#include <stdio.h>
void count_sort(int *a,int *b,int size,int k)
{
int c[1000],i,value,pos;
for(i=0;i<=k;i++)
c[i]=0;
for(i=0;i<size;i++)
c[a[i]]++;
for(i=1;i<=k;i++)
c[i]=c[i]+c[i-1];
for(i=0;i<size;i++)
{
value=a[i];
pos=c[value];
b[pos-1]=value;
c[value]--;
}
}
void main()
{
int a[]={2,5,3,0,2,3,0,3},b[100];
count_sort(a,b,8,5);
for(int i=0;i<8;i++)
printf("%d ",b[i]);
printf("\n");
}