Pagini recente » Cod sursa (job #54810) | Cod sursa (job #2795977) | Cod sursa (job #92755) | Cod sursa (job #2519173) | Cod sursa (job #592269)
Cod sursa(job #592269)
#include <iostream>
#include <vector>
#include <fstream>
#include <math.h>
using namespace std;
ofstream out("algsort.out");
void printSorted(int x[], int length);
vector < vector <int> > buckets;
void radixSort(int x[],int length){
int temp;
int m=0;
//Begin Radix Sort
for(int i=0;i<7;i++){
//Determine which bucket each element should enter
for(int j=0;j<length;j++){
temp=(int)((x[j])/pow(10,i))%10;
buckets[temp].push_back((x[j]));
}
//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;
}
buckets.clear();
printSorted(x,length);
}
void printSorted(int x[], int length){
for(int i=0;i<length;i++)
out<<x[i]<<' ';
}
int main(){
ifstream in("algsort.in");
int testcases;
in>>testcases;
int input[testcases];
buckets.resize(10);
int number;
for(int i=0;i<testcases;i++){
in>>number;
input[i]=number;
}
radixSort(input,testcases);
// system("pause");
return 0;
}