void countsort(int A[],int B[],int n,int k )
{ // n是数组长度,k是整数
int *C=new int[k+1];
for(int i=0;i<=k;i++)
C[i]=0;
for(int j=0;j<n;j++)
C[A[j]]=C[A[j]]+1;
for(int i=1;i<=k;i++)
C[i]=C[i]+C[i-1];
for(int j=n-1;j>=0;j--)
{
B[C[A[j]]-1]=A[j];
C[A[j]]--;
}
delete[] C;
C=NULL;
}
int main()
{
int A[11]={2,2,3,4,5,6,7,8,9,0,1};
int B[11];
countsort(A,B,11,9);
for(int i=0;i<11;i++)
cout<<B[i]<<endl;
return 0;
}
{ // n是数组长度,k是整数
int *C=new int[k+1];
for(int i=0;i<=k;i++)
C[i]=0;
for(int j=0;j<n;j++)
C[A[j]]=C[A[j]]+1;
for(int i=1;i<=k;i++)
C[i]=C[i]+C[i-1];
for(int j=n-1;j>=0;j--)
{
B[C[A[j]]-1]=A[j];
C[A[j]]--;
}
delete[] C;
C=NULL;
}
int main()
{
int A[11]={2,2,3,4,5,6,7,8,9,0,1};
int B[11];
countsort(A,B,11,9);
for(int i=0;i<11;i++)
cout<<B[i]<<endl;
return 0;
}