#include<stdio.h>
void counting_sort( int a[ ] , int r[ ] ) ;
//void printarray(int a[]);
int main( )
{
int a[ 55 ] , i, n = 7 , j, k, l, range = 5 , r[ 33 ] ;
printf ( " Enter the total number for sorting" ) ; for ( int i = 0 ; i < 7 ; i++ ) {
printf ( "Enter the number for sorting\n " ) ; }
for ( j = 0 ; j < range; j++ ) {
printf ( "Enter the number for range\n " ) ; }
counting_sort( a, r) ;
//printarray(a);
}
void counting_sort( int a[ 33 ] , int r[ 33 ] )
{
int key, o[ 33 ] , count, sum, b[ 77 ] ;
for ( int i = 0 ; i < 5 ; i++ ) {
count = 0 ;
key = r[ i] ;
for ( int j = 0 ; j < 7 ; j++ ) {
if ( a[ j] == key)
count++;
}
b[ i] = count;
b[ i] = b[ i] + sum;
sum = b[ i] ;
//b[i+1]= b[i]+b[i+1]; printf(" %d after adding is %d \n",r[i], b[i]);
}
for ( int k = 0 ; k < 5 ; k++ ) {
while ( b[ k] > 0 ) {
b[ k] --;
o[ b[ k] ] = r[ k] ;
}
}
for ( int l = 0 ; l < 7 ; l++ )
printf ( "%d sorted array" , o
[ l
] ) ; }
I2luY2x1ZGU8c3RkaW8uaD4KCnZvaWQgY291bnRpbmdfc29ydChpbnQgYVtdLCBpbnQgcltdKTsKLy92b2lkIHByaW50YXJyYXkoaW50IGFbXSk7CmludCBtYWluKCkKewoJaW50IGFbNTVdLCBpLCBuID0gNywgaiwgaywgbCwgcmFuZ2UgPSA1LCByWzMzXTsKCXByaW50ZigiIEVudGVyIHRoZSB0b3RhbCBudW1iZXIgZm9yIHNvcnRpbmciKTsKCXNjYW5mKCIlZCIsICZuKTsgCglmb3IoaW50IGkgPSAwOyBpIDwgNzsgaSsrKSB7CgkJcHJpbnRmKCJFbnRlciB0aGUgbnVtYmVyIGZvciBzb3J0aW5nXG4iKTsKCQlzY2FuZigiJWQiLCAmYVtpXSk7Cgl9IAoJZm9yIChqID0gMDsgaiA8IHJhbmdlOyBqKyspIHsKCQlwcmludGYoIkVudGVyIHRoZSBudW1iZXIgZm9yIHJhbmdlXG4iKTsKCQlzY2FuZigiJWQiLCAmcltqXSk7Cgl9CiAgICBjb3VudGluZ19zb3J0KGEsIHIpOwogICAgLy9wcmludGFycmF5KGEpOwp9CnZvaWQgY291bnRpbmdfc29ydChpbnQgYVszM10sIGludCByWzMzXSkKewoJaW50IGtleSwgb1szM10sIGNvdW50LCBzdW0sIGJbNzddOwoJZm9yIChpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKCQljb3VudCA9IDA7CgkJa2V5ID0gcltpXTsKCQlmb3IgKGludCBqID0gMDsgaiA8IDc7IGorKykgewoJCQlpZiAoYVtqXSA9PSBrZXkpCgkJCWNvdW50Kys7CgkJfQoJCWJbaV09Y291bnQ7CgkJYltpXT0gYltpXSArIHN1bTsKCQlzdW0gPSBiW2ldOwoJCS8vYltpKzFdPSBiW2ldK2JbaSsxXTsgcHJpbnRmKCIgJWQgYWZ0ZXIgYWRkaW5nIGlzICVkIFxuIixyW2ldLCBiW2ldKTsgCgl9IAoJZm9yKGludCBrID0gMDsgayA8IDU7IGsrKykgewoJCXdoaWxlIChiW2tdID4gMCkgewoJCQliW2tdLS07CgkJCW9bYltrXV0gPSByW2tdOwoJCX0KCX0KCWZvciAoaW50IGwgPSAwOyBsIDwgNzsgbCsrKSAKCQlwcmludGYoIiVkIHNvcnRlZCBhcnJheSIsIG9bbF0pOwp9