Pagini recente » Cod sursa (job #2279860) | Cod sursa (job #2667154) | Cod sursa (job #1661270) | Cod sursa (job #3242884) | Cod sursa (job #2269482)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[500002], r[500002], sf[10], st[10];
void radixsort(long long lv){
int c, k=0, i, j;
for(i=0;i<=9;++i) sf[i]=0;
for(i = 0; i < n; i++){
c=v[i] / lv % 10;
++sf[c];
}
st[0]=0;
for(i=1;i<=9;++i)
st[i]=st[i-1]+sf[i-1];
if(sf[0] == n) ;
else{
for(i = 0; i < n; i++)
{
c=v[i] / lv % 10;
r[st[c]]=v[i];
st[c]++;
}
for(i = 0; i < n; i++) v[i]=r[i];
radixsort(lv * 10LL);
}
}
int main()
{
int i;
f>>n;
for(i = 0; i < n; i++)
f>>v[i];
radixsort(1);
for(i = 0; i < n; i++)
g<<v[i]<<" ";
}