Pagini recente » Cod sursa (job #685468) | Cod sursa (job #1905487) | Cod sursa (job #2707146) | Cod sursa (job #2679794) | Cod sursa (job #2283999)
#include <cstdio>
#include <vector>
using namespace std;
vector < int > radix( vector < int > V ) {
vector < int > B[ 2 ];
int n, i, j, k, mask, bac;
for ( k = 0; k <= 31; ++k ) {
for ( i = 0; i < V.size(); ++i )
B[ ( V[ i ] >> k ) & 1 ].push_back( V[ i ] );
V.erase( V.begin(), V.end() );
for( i = 0; i <= 1; ++i ) {
for ( j = 0; j < B[ i ].size(); ++j )
V.push_back( B[ i ][ j ] );
B[i].erase( B[ i ].begin(), B[ i ].end());
}
}
return V;
}
int main () {
freopen( "algsort.in", "r", stdin );
freopen( "algsort.out", "w", stdout );
int n, i, j, k, m, mask, bac = 1;
vector < int > V;
scanf( "%d", &n );
for( i = 1; i <= n; ++i ) {
scanf( "%d", &k );
V.push_back( k );
}
V = radix( V );
for ( i = 0; i < V.size(); ++i )
printf( "%d ", V[ i ] );
return 0;
}