Pagini recente » Cod sursa (job #2614428) | Cod sursa (job #2108811) | Cod sursa (job #2241357) | Cod sursa (job #1360952) | Cod sursa (job #2282399)
#include <iostream>
using namespace std;
int Max(int v[],int n)
{
int mx=v[0];
for(int i=1;i<n;i++)
if(v[i]>mx) mx=v[i];
return mx;
}
void countSort(int v[],int n,int e)
{
int out[n];
int i,c[10]={0};
for(i=0;i<n;i++) c[(v[i]/e)%10]++;
for(i=1;i<10;i++) c[i]+=c[i-1];
for(i=n-1;i>=0;i--)
{
out[c[(v[i]/e)%10]-1]=v[i];
c[(v[i]/e)%10]--;
}
for(i=0;i<n;i++) v[i]=out[i];
}
void radixSort(int v[],int n)
{
int m=Max(v,n);
for(int e=1;m/e>0;e*=10)
countSort(v,n,e);
}
int main()
{
int n,i;
cin>>n;
int v[n];
for(i=0;i<n;i++) cin>>v[i];
radixSort(v,n);
for(i=0;i<n;i++) cout<<v[i]<<" ";
return 0;
}