Pagini recente » Cod sursa (job #542900) | Cod sursa (job #554013) | Cod sursa (job #1503963) | Cod sursa (job #2217021) | Cod sursa (job #660176)
Cod sursa(job #660176)
#include <stdio.h>
#include <vector>
#include <math.h>
# define MAX 500001
using namespace std;
int x[MAX],n;
vector < vector <int> >buckets;
void radixSort(int x[],int n)
{
int val,m=0;
for(int i=0;i<7;i++)
{
for(int j=0;j<n;j++)
{ val=(int)((x[j])/pow(10,i))%10;
buckets[val].push_back((x[j]));
}
for(int k=0;k<10;k++)
{
for(int l=0;l<buckets[k].size();l++)
{ x[m]=buckets[k][l];
m++;
}
buckets[k].clear();
}
m=0;
}
buckets.clear();
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
buckets.resize(10);
for(int i=0;i<n;++i)
scanf("%d",&x[i]);
radixSort(x,n);
for(int i=0;i<n;++i)
{
printf("%d ",x[i]);
}
return 0;
}