Cod sursa(job #1019731)

Utilizator romykPrehari Romica romyk Data 31 octombrie 2013 20:57:10
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.84 kb
#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;
}