Pagini recente » Cod sursa (job #1091500) | Cod sursa (job #52378) | Cod sursa (job #2885723) | Cod sursa (job #1229935) | Cod sursa (job #1953317)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
const int maxn = 5e5 + 5;
queue <int> Q[256];
int V[maxn];
void Radix (int n) {
for (int bit = 0; bit < 32; bit += 8) {
int lg = 0;
for (int i = 1; i <= n; i++) {
int pos = (V[i] >> bit) & 255;
Q[pos].push(V[i]);
}
for (int i = 0; i < 256; i++) {
while (!Q[i].empty()) {
V[++lg] = Q[i].front();
Q[i].pop();
}
}
}
}
int main () {
ios_base :: sync_with_stdio (false);
int n, i;
fin >> n;
for (i = 1; i <= n; i++) {
fin >> V[i];
}
Radix(n);
for (i = 1; i <= n; i++) {
fout << V[i] << " ";
}
fout << "\n";
fin.close();
fout.close();
return 0;
}