Pagini recente » Cod sursa (job #959024) | Cod sursa (job #2160165) | Cod sursa (job #491530) | Cod sursa (job #909552) | Cod sursa (job #649252)
Cod sursa(job #649252)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500001;
vector <int> buckets[10];
int v[N],n,maxim;
void RadixSort(){
int i,j,k,place,aux;
for(i=1;maxim;maxim/=10,i*=10){
for(j=1;j<=n;++j){
place=(v[j]/i)%10;
buckets[place].push_back(v[j]);
}
aux=0;
for(j=0;j<=9;++j){
for(k=0;k<buckets[j].size();++k){
v[++aux]=buckets[j][k];
}
buckets[j].clear();
}
}
}
int main(){
int i;
in>>n;
for(i=1;i<=n;++i){
in>>v[i];
if(v[i]>maxim)
maxim=v[i];
}
RadixSort();
for(i=1;i<=n;i++){
out<<v[i]<<" ";
}
return 0;
}