Pagini recente » Cod sursa (job #1375135) | Cod sursa (job #1415637) | Cod sursa (job #616878) | Cod sursa (job #1896328) | Cod sursa (job #2269476)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[500002];
void radixsort(int lv){
vector <int> r[10];
int c, k=0, i, j;
for(i = 0; i < n; i++){
c=v[i] / lv % 10;
r[c].push_back(v[i]);
}
if((int)r[0].size() == n)
for(j=0;j<(int)r[0].size();j++)
v[k++]=r[0][j];
else{
for(i=0;i<=9;i++)
for(j=0;j<(int)r[i].size();j++)
v[k++]=r[i][j];
radixsort(lv * 10);
}
}
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]<<" ";
}