Pagini recente » Cod sursa (job #1472217) | Cod sursa (job #1115761) | Cod sursa (job #1125152) | Cod sursa (job #1235342) | Cod sursa (job #1315760)
#include <iostream>
#include<fstream>
using namespace std;
int n,v[500005],y[10][500005],z[9];
ifstream f("algsort.in");
ofstream g("algsort.out");
void radixsort(int o,int n)
{
int i,j,k,e=1,l,m;
for(i=1;i<=o;i++)
{
for(j=1;j<=9;j++) z[j]=0;
l=1;
for(j=1;j<=n;j++)
{m=v[j]/e%10; if(m==0) {v[l]=v[j];l++;} else
{z[m]++;
y[m][z[m]]=v[j]; }}
for(j=1;j<=9;j++)
for(k=1;k<=z[j];k++)
{v[l]=y[j][k];l++;}
e=e*10;}
}
int main()
{
int i,j=0,c=0;
f>>n;
for(i=1;i<=n;i++) {f>>v[i];if(v[i]>c) c=v[i];}
while(c>0) {j++; c=c/10;}
radixsort(j,n);
for(i=1;i<=n;i++) g<<v[i]<<" ";
f.close();
g.close();
return 0;
}