Pagini recente » Cod sursa (job #315857) | Cod sursa (job #456517) | Cod sursa (job #149952) | Cod sursa (job #2603831) | Cod sursa (job #1019731)
#include <stdio.h>
#include <stdlib.h>
int tab[400003];
void quick_sort( int l , int r ,int b)
{
int i , j;
int aux;
i = l;
j = r;
do
{
while ( !(tab[ i ]&1<<b) )
i++;
while ( tab[ j ]&1<<b )
j--;
if ( i <= j )
{
aux = tab[ i ];
tab[ i ] = tab[ j ];
tab[ j ] = aux;
i++;
j--;
}
} while ( i <= j );
if ( l < j )
quick_sort( l , j , b-1);
if ( r > i )
quick_sort( i , r , b-1);
}
int main()
{
int i,n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%i",&n);
for(i=0;i<n;i++)
scanf("%i",&tab[i]);
quick_sort(0,n-1,20);
for(i=0;i<n;i++)
printf("%i ",tab[i]);
return 0;
}