Pagini recente » Cod sursa (job #3129714) | Cod sursa (job #2770714) | Cod sursa (job #1615487) | Cod sursa (job #1517650) | Cod sursa (job #659863)
Cod sursa(job #659863)
#include <stdio.h>
#include <vector>
using namespace std;
int maxim,n;
vector<int> v;
vector<int> bucket[12];
void radix(){
int sortat=1;
int digit=1,m=1,m1=1;
while (digit<=1000000000){
for (int i=1;i<=n;i++)
bucket[(v[i]/digit)%10].push_back(v[i]);
int indice=1;
for (int i=0;i<10;i++){
for(vector<int>::iterator it=bucket[i].begin();it!=bucket[i].end();it++)
v[indice++]=*it;
bucket[i].clear();
}
digit*=10;
}
}
int main()
{
int x;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
maxim=-1;
scanf("%d",&n);
v.push_back(1);
for (int i=1;i<=n;i++){
scanf("%d",&x);
v.push_back(x);
if (x>maxim) maxim=x;
}
radix();
for (int i=1;i<=n;i++)
printf("%d ",v[i]);
return 0;
}