Cod sursa(job #1251175)
| Utilizator | Data | 29 octombrie 2014 00:00:02 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include<fstream>
#include<vector>
#define nx 500007
#define baza 256
using namespace std;
int n,a,b,c,i,j,m,nr[nx];
vector<int>v[baza+1];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>nr[i];
m=baza;
for(int l=0;l<32;l+=8)
{
for(i=1;i<=n;i++)
v[(nr[i]&(m-1))>>l].push_back(nr[i]);
n=0;
for(i=0;i<baza;i++)
{
for(j=0;j<v[i].size();j++)
nr[++n]=v[i][j];
v[i].clear();
}
m=m*baza;
}
for(i=1;i<=n;i+=1)
fout<<nr[i]<<" ";
return 0;
}
