Pagini recente » Cod sursa (job #953325) | Borderou de evaluare (job #224280) | Cod sursa (job #334003) | Cod sursa (job #3161356) | Cod sursa (job #3030979)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> sortare(vector<int> V){
vector<vector<int>> bins(1000);
long i = 1;
int n;
int ok = 1;
while(ok){
ok = 0;
for(int j=0; j<1000; j++){
bins[j] = {};
}
for(int j=0; j<V.size(); j++){
if ((V[j]/i) > 999) {
ok = 1;
}
n = (V[j]/i) % 1000;
bins[n].push_back(V[j]);
}
V.clear();
for(int j=0; j<bins.size(); j++){
for(int k=0; k<bins[j].size(); k++){
V.push_back(bins[j][k]);
}
}
i*=1000;
}
return V;
}
int main(){
ifstream f("algsort.in");
ofstream g("algsort.out");
vector<int> V;
int a, N;
f>>N;
while(N>0){
f>>a;
V.push_back(a);
N--;
}
V = sortare(V);
for(int i=0; i<V.size(); i++){
g<<V[i];
}
return 0;
}