{
//for base 10
int temp; int bucket[10][20], buck_count[10], b[10];
int i,j,k,r,no_of_passes=0,divisor=1,largest,pass_no;
largest=numbers[0];
for(i=1;i
if(numbers[i] > largest)
largest=numbers[i];
}
while(largest > 0) //Find number of digits in largest number
{
no_of_passes++;
largest /= 10;
}
for(pass_no=0; pass_no < no_of_passes; pass_no++)
{
for(k=0; k<10; k++) buck_count[k]=0; //Initialize bucket count
for(i=0;i less than n;i++)
{
r=(numbers[i]/divisor) % 10;
bucket[r][buck_count[r]++]=numbers[i];
}
i=0; //collect elements from bucket
for(k=0; k<10; k++)
for(j=0; j less than buck_count[k]; j++)
numbers[i++] = bucket[k][j];
divisor *= 10;
}
}
for any query just leave a message