//this is CountingSort,and I have omitted the solution of the minimum and maximum about the array.
#include<stdio.h>
#include<memory.h>
int main()
{
void CountingSort(int array[],int n,int mum,int max);
int array[10] = {2,5,3,1,10,8,4,6,7,2};
CountingSort(array,10,1,10);
for(int iter = 0;iter < 10;iter ++)
{
printf("%d ",array[iter]);
}
return 0;
}
void CountingSort(int array[],int n,int mum,int max)
{
int temp_array[max - mum + 1];
int flag = 0;
memset(temp_array,0,(max - mum + 1)*sizeof(int));
for(int iter = 0;iter < n;iter ++)
{
temp_array[array[iter]] ++;
}
for(int jter = mum;jter <= max;jter ++)
{
for(int kter = 0;kter < temp_array[jter];kter ++)
{
array[flag] = jter;
flag ++;
}
}
}