Pagini recente » Cod sursa (job #2889612) | Cod sursa (job #2580209) | Cod sursa (job #2951204) | Cod sursa (job #1856901) | Cod sursa (job #661599)
Cod sursa(job #661599)
#include<iostream>
#include<fstream>
#include<vector>
#define nmax 50001
using namespace std;
vector <vector <int> > buckets;
int v[nmax],n,length=0;
ifstream f("algsort.in");
ofstream g("algsort.out");
void radixsort(){
int x,nr=0,p=1;
for(int i=0;i<length;i++){
for(int j=0;j<n;j++){
x=(v[j]/p)%10;
buckets[x].push_back(v[j]);
}
for(int j=0;j<10;j++){
for(int k=0;k<buckets[j].size();k++){
v[nr]=buckets[j][k];
nr++;
}
buckets[j].clear();
}
nr=0;
p=p*10;
}
buckets.clear();
}
int main(){
f>>n;
buckets.resize(10);
int max=-1;
for(int i=0;i<n;i++){
f>>v[i];
if(v[i]>max)
max=v[i];
}
while(max>0){
length++;
max=max/10;
}
radixsort();
for(int i=0;i<n;i++)
g<<v[i]<<" ";
f.close();
g.close();
return 0;
}