Pagini recente » Cod sursa (job #1340107) | Cod sursa (job #2509166) | Cod sursa (job #2904628) | Cod sursa (job #2748437) | Cod sursa (job #1516192)
#include<fstream>
#include<deque>
#include<iostream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
deque<int> v[2][256];
int N, e, i, j, k, s;
int byte[4] = { 0XFF,0xFF00,0xFF0000,0xFF000000};
int shift[4] = { 0,8,16,24 };
int main()
{
in >> N;
for (i = 1;i <= N;++i)
{
in >> e;
v[0][e & byte[0]].push_back(e);
cout << (e & byte[0]) << " ";
}
s = 1;
for (k = 1;k <= 3;++k, ++s)
for (i = 0;i <= 255;++i)
for (;v[(s + 1) % 2][i].size()>0;)
{
v[s % 2][(v[(s + 1) % 2][i].front() & byte[s])>>shift[s]].push_back(v[(s+1) % 2][i].front());
v[(s+1) % 2][i].pop_front();
}
for (i = 0;i <= 255;++i)
for (j = 1;j <= v[(s + 1) % 2][i].size();++j)
out << v[(s + 1) % 2][i][j - 1] << " ";
return 0;
}