Pagini recente » Cod sursa (job #2042731) | Cod sursa (job #2990724) | Cod sursa (job #1322525) | Cod sursa (job #2473663) | Cod sursa (job #1071187)
#include<fstream>
#include<queue>
#define maxn 500005
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
queue <int> q[10];
int i,n,maxv,v[maxn];
int p=1;
void radixsort(int p){
int i,j=0;
for(i=1;i<=n;i++) q[(v[i]/p)%10].push(v[i]);
for(i=0;i<=9;i++)
while(q[i].size()){
v[++j]=q[i].front();
q[i].pop();
}
}
int main(){
//Radix-Sort, (LSD) Least Significant Digit
fi>>n; fi>>v[1]; maxv=v[1];
for(i=2;i<=n;i++){
fi>>v[i];
if(v[i]>maxv) maxv=v[i];
}
while(maxv){
radixsort(p);
p*=10;
maxv/=10;
}
for(i=1;i<=n;i++) fo<<v[i]<<" ";
fi.close();
fo.close();
return 0;
}