void CountSort(int A[],int B[], int k, int size)
{
const int mx=k;
int C[mx];
...
}
mx is constant! What is wrong here??
[From asker's "solution"]
void CountSort(int[],int[], int , int);
int _tmain(int argc, _TCHAR* argv[])
{
const int size=12;
int A[size]={0,2,3,1,7,9,6,45,12,10,20,15};
int B[size];
int max=45;
CountSort(A,B,max,size);
for(int i = 1 ; i<size;> cout<<B[i]<<" ";
return 0;
}
void CountSort(int A[],int B[], int k, int size)
{
int *C = new int[k];
for(int i =0;i<=k;i++)
C[i]=0;
for(int j =1; 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 = size-1 ;j>0;j--)
{
B[C[A[j]]] = A[j] ;
C[A[j]] = C[A[j]] - 1 ;
}
}