Pagini recente » Cod sursa (job #621189) | Cod sursa (job #2690167) | Cod sursa (job #1001104) | Cod sursa (job #3222232) | Cod sursa (job #515544)
Cod sursa(job #515544)
#include<fstream>
#define mod10(x) (x-(x/10)*10)
using namespace std;
int l[505050],put[15],v[15],N,ver[505050],q;
void sort(int k)
{
if(k>=11)
return;
if(k>1)
put[k]=put[k-1]*10;
for(int i=0;i<=10;++i)
v[i]=0;
v[0]=1;
for(int i=1;i<=N;++i)
{
q=l[i]/put[k];
v[mod10(q)+1]++;
}
for(int i=1;i<=10;++i)
v[i]=v[i-1]+v[i];
for(int i=1;i<=N;++i)
{
q=l[i]/put[k];
ver[v[mod10(q)]]=l[i];
++v[mod10(q)];
}
for(int i=1;i<=N;++i)
l[i]=ver[i];
sort(k+1);
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin>>N;
for(int i=1;i<=N;++i)
fin>>l[i];
put[1]=1;
sort(1);
for(int i=1;i<=N;++i)
fout<<l[i]<<" ";
}