Pagini recente » Cod sursa (job #2650838) | Cod sursa (job #1873165) | Cod sursa (job #1982514) | Cod sursa (job #1135190) | Cod sursa (job #1076647)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
#define maxN 500005
vector <int> v (maxN);
vector <int> g[10];
unsigned n,m,i,j,k;
void print(int pas)
{
int x;
cout<<"\n Vectorul la pasul "<<pas<<": ";
for(i=0; i<n ;i++)
{
x=v.at(i);
cout<<x<<" ";
}
}
int main()
{
int x,ord,maxim,nr,r,d;
in>>n;
for(i=0; i<n ;i++)
{
in>>x;
v.at(i)=x;
}
maxim=*max_element(v.begin(),v.begin()+n);
m=0;
while(maxim)
{
m++;
maxim=maxim/10;
}
ord=1;
for(k=1; k<=m ;k++)
{
ord=ord*10;
for(i=0; i<n ;i++)
{
d=v.at(i)%ord;
r=d/(ord/10);
g[r].push_back(v.at(i));
}
nr=0;
for(i=0; i<=9 ;i++)
{
if(g[i].size())
{
for(j=0; j<g[i].size() ;j++)
{
v.at(nr++)=g[i][j];
}
g[i].clear();
}
}
}
for(i=0; i<n ;i++)
out<<v.at(i)<<" ";
return 0;
}
/*for(i=0; i<=9 ;i++)
{
cout<<"\n Galeata "<<i<<": ";
if(g[i].size())
{
for(j=0; j<g[i].size() ;j++)
{
cout<<g[i][j]<<" ";
}
}
else cout<<" nu contine nimic !";
}*/