Pagini recente » Cod sursa (job #1554765) | Cod sursa (job #147597) | Cod sursa (job #2687935) | Cod sursa (job #713305) | Cod sursa (job #580618)
Cod sursa(job #580618)
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
int n,x;
int v[500001];
vector < vector <int> > buckets(10);
void radixSort(int x[],int length){
int temp;
int m=0;
int putere10=1;
//Begin Radix Sort
for(int i=0;i<9;i++){
//Determine which bucket each element should enter
for(int j=0;j<length;j++){
temp=(int)((x[j])/putere10)%10;
buckets[temp].push_back((x[j]));
}
putere10*=10;
//Transfer results of buckets back into main array
for(int k=0;k<10;k++){
for(int l=0;l<buckets[k].size();l++){
x[m]=buckets[k][l];
m++;
}
//Clear previous bucket
buckets[k].clear();
}
m=0;
}
}
int main()
{
ifstream in("algsort.in");
ofstream out("algsort.out");
in>>n;
for(int i=1;i<=n;i++)
{
in>>v[i];
}
radixSort(v+1,n);
for(int i=1;i<=n;i++)
out<<v[i]<<" ";
return 0;
}