Pagini recente » Cod sursa (job #891753) | Rating Ciocoiu Raluca Iulia (Raluca004) | Cod sursa (job #2578244) | Cod sursa (job #2472471) | Cod sursa (job #330745)
Cod sursa(job #330745)
#include<fstream>
#include<cstring>
#define maxn 500005
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[maxn],b[maxn],n,i;
void rad(int *a,int *b,int n,int byte)
{
int count[2048],ind[2048];
memset(count,0,sizeof(count));
for(i=1;i<=n;++i)
++count[(a[i]>>byte)&2047];
ind[0]=1;
for(i=1;i<2048;++i)
ind[i]=ind[i-1]+count[i-1];
count[0]=1;
for(i=1;i<=n;++i)
b[ind[(a[i]>>byte)&2047]++]=a[i];
}
void radix(int *a,int n)
{
rad(a,b,n,0);
rad(b,a,n,11);
rad(a,b,n,22);
}
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>a[i];
radix(a,n);
for(i=1;i<=n;++i)
g<<a[i]<<" ";
g<<"\n";
}