Pagini recente » Monitorul de evaluare | Cod sursa (job #613816) | Cod sursa (job #1881224) | Cod sursa (job #1577162) | Cod sursa (job #2294703)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[500002], r[10][500002], sf[10];
void radixsort(int lv){
int c, k=0, i, j;
for(i = 0; i < n; i++){
c=v[i] / lv % 10;
r[c][++sf[c]] = v[i];
}
for(i=0;i<=9;i++){
for(j=1;j<=sf[i];j++)
v[k++]=r[i][j];
sf[i]=0;
}
if(lv<1e9) radixsort(lv * 10);
}
int main()
{
int a, b, c, i;
f>>n;
for(i = 0; i < n; i++)
f>>v[i];
radixsort(1);
for(i = 0; i < n; i++)
g<<v[i]<<" ";
}